Heim > Web-Frontend > js-Tutorial > Wie löst man Dateidownloads aus AJAX-POST-Antworten aus?

Wie löst man Dateidownloads aus AJAX-POST-Antworten aus?

DDD
Freigeben: 2024-12-31 01:50:09
Original
208 Leute haben es durchsucht

How to Trigger File Downloads from AJAX POST Responses?

Wie man mit dem Herunterladen von Dateien mit AJAX POST umgeht

Beim Senden von AJAX POST-Anfragen in einer JavaScript-Anwendung können Entwickler auf Szenarien stoßen, in denen der Server mit einer Datei anstelle von JSON antwortet Daten. In solchen Fällen ist es notwendig, einen Dateidownload im Browser des Clients auszulösen. In diesem Artikel wird eine Lösung für diese Herausforderung untersucht.

AJAX-Anfragen geben normalerweise den Content-Type an und überprüfen den Content-Disposition-Header, um den Antworttyp zu identifizieren. Wenn festgestellt wird, dass die Antwort eine Datei enthält, stellt sich die Frage: Wie initiiere ich einen Download?

Die Lösung liegt in der Nutzung von Teilen der FileAPI in modernen Browsern. So funktioniert es:

  1. Konfigurieren Sie eine XMLHttpRequest:

    • Setzen Sie den Antworttyp auf „blob“, um die Antwort als Binärdaten-Blob zu empfangen.
    • Geben Sie den Content-Type-Header als „application/x-www-form-urlencoded“ für POST an Anfragen.
  2. Onload-Ereignis behandeln:

    • Bei einer erfolgreichen Antwort (Status 200) extrahieren Sie den Blob aus der Antwort.
    • Rufen Sie den Content-Disposition-Header ab, um nach einem Vorschlag zu suchen Dateiname.
  3. Download starten:

    • Verwenden Sie für Internet Explorer window.navigator.msSaveBlob, um das Blob mit dem vorgeschlagenen Dateinamen zu speichern.
    • Für andere Browser nutzen Sie window.URL oder window.webkitURL, um eine herunterladbare URL für zu erstellen blob.
    • Verwenden Sie das HTML5-Attribut a[download], um den Dateinamen anzugeben (falls verfügbar) oder leiten Sie den Benutzer zur herunterladbaren URL um.
    • Widerrufen Sie die temporäre herunterladbare URL nach einer kurzen Verzögerung zur Bereinigung .
  4. jQuery.ajax Alternative:

    • Verwenden Sie die jQuery.ajax-Methode mit ähnlichen Konfigurationen und verarbeiten Sie den Blob im Erfolgsrückruf.

Zusammenfassend lässt sich sagen, dass Sie die FileAPI ist es möglich, Dateidownloads im Browser zu initiieren, selbst wenn die Serverantwort durch AJAX POST-Anfragen ausgelöst wird. Diese Technik wird in modernen Browsern unterstützt und bietet eine bequeme und benutzerfreundliche Erfahrung beim Herunterladen von Dateien aus Webanwendungen.

Das obige ist der detaillierte Inhalt vonWie löst man Dateidownloads aus AJAX-POST-Antworten aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage