2017-01-20 4 views
1

In meiner angularjs (angularjs 1.3) App gibt es einen Platz, wo der Benutzer eine PDF-Datei herunterladen kann. Dies wird in einer Steuerung erfolgt mit:

$window.location.href = 'pdf/123456'; 

, die die Datei auf dem Computer des Benutzers gespeichert werden. Die URL im Browser wird nie wirklich geändert, der Nutzer befindet sich immer noch auf derselben Seite in der eckigen App.

Wenn ich die Standorte auf diese Weise einstelle, werden laufende Anfragen bei der Verwendung von Firefox abgebrochen. Mit Chrome gibt es kein Problem. Die einzige Lösung, die ich gefunden habe, ist mit anderen Anfragen zu warten, bis das PDF heruntergeladen ist, aber da das einige Zeit dauern kann, möchte ich sie starten, bevor der Download abgeschlossen ist.

Gibt es eine Möglichkeit, dies zu beheben? Kann ich die Datei auf andere Weise herunterladen? Ich möchte kein Popup-Fenster öffnen.

Antwort

0

Eine andere Möglichkeit, eine Datei herunterzuladen, ist ein <a> Tag mit der Datei als Ziel zu erstellen und einen Klick darauf zu simulieren. Gefällt mir:

var a = document.createElement('a'); 
a.href = 'pdf/123456'; 
a.download = 'document_name'; 
a.target = '_blank'; 
a.click(); 
+0

Danke @yadejo aber das wird nicht in meinem Fall funktionieren. Der Download sollte automatisch ausgeführt werden, nachdem ein Versprechen gelöst wurde. – gusper

+0

Sie können diesen Code nicht ausführen, wenn das Versprechen verrechnet wird? – yadejo

+0

Ich kann, aber andere laufende Anfragen werden abgebrochen, wenn ich $ window.location.href = ... – gusper

Verwandte Themen