2013-03-11 12 views
6

Jak mogę użyć usługi angularjs $http, aby wysłać zapytanie do serwera i przesłać wynik do nowego okna przeglądarki?Angularjs: Jak przesłać odpowiedź HTTP do nowego okna?

Moja usługa generuje i odtwarza raport w formacie PDF, który chcę otworzyć w nowym oknie przeglądarki. Do tej pory używałem $http do wysyłania żądań, które zwracały dane JSON. Mógłbym użyć tego do aktualizacji modelu. To działa dobrze. Ale teraz nie chcę wyodrębniać danych z odpowiedzi, wystarczy wyświetlić w innym oknie. Być może powinienem używać usługi niższego poziomu, a nie schematu wymiany danych, z którego korzystałem?

$http(httpPostConfig).success(
    function(data, status, headers, config) { 
     ... 
    } 
).error(

    function(data, status, headers, config) { 
     ... 
    } 
); 
+4

Niech twój serwer zwróci unikalny identyfikator wygenerowanego pliku PDF i skorzystaj z usługi JS (za pośrednictwem okna), aby otworzyć nowe okno z adresem URL wskazującym na punkt końcowy po stronie serwera, który zwraca PDf na podstawie unikalnego identyfikatora (np. '$ window.open ('/ pdf/6234556') '). – Stewie

+0

@Stewie Thanks. Jeśli nie potrafię wymyślić, jak zrobić to w sposób kanciasty, to wykorzystam taką pracę. – Glenn

+0

Chodzi o to, że twój pomysł nie jest możliwy do zrealizowania tak, jak sobie to wyobrażałeś. Nie ma na to sposobu Angular ani JS. Według brzmienia twojego pomysłu wydaje mi się, że zbliżasz się do tego z opartego na Javie widoku świata. Popraw mnie, jeśli się mylę. ;-) – Stewie

Odpowiedz

5

Czy Twój serwer zwraca unikalny identyfikator generowany PDF i poza służbą użycie $ okna, aby otworzyć nowe okno z jego url wskazując na punkt końcowy po stronie serwera, który zwraca PDF na podstawie unikalnego identyfikatora (np $window.open('/pdf/6234556')) ;

+1

wszelkie porady dotyczące tworzenia "dynamicznego" punktu końcowego po stronie serwera? –

Powiązane problemy