Sven Rautenberg: PDF: global - target="blank" möglich?

Beitrag lesen

Moin!

Das ist wiederum Quatsch: Ajax hilft hier Null, denn man wird wohl kaum einen PDF-Viewer in Javascript implementieren wollen - und was soll Javascript mit dem Bytestream des PDFs sonst tun?

Der Mime-Type "application/octet-stream" veranlasst alle gängigen Browser dazu einen Download zu starten. Dies ist zumindest bei "normalen" Anfragen der Fall, habe es für Ajax-Anfragen noch nicht getestet. Falls das allerdings auf Ajax-Anfragen nicht zutrifft, kann man die empfangenen Daten immer noch mit einem Daten-URI und wahlweise "window.open" oder einem a-Element mit download-Attribute weiterverarbeiten.

Das ist das, was vom Server kommen muss, damit ein Download startet. Mit AJAX startest du keinen Download, du machst Javascript den Inhalt des Response-Bodys bekannt. Und mit dem Überschreiben des serverseitigen Mime-Typs im AJAX erlaubst du dem Browser, trotz anderweitiger Deklaration durch den Server z.B. XML zu parsen.

Du kriegst aber kein per AJAX empfangenes PDF "heruntergeladen", weil Javascript gewöhnlich keinen Zugang zum lokalen Dateisystem hat.

- Sven Rautenberg