Dateien über AJAX herunterladen
Wenn Sie versuchen, eine AJAX-Downloadanfrage über einen Klick auf eine Schaltfläche zu initiieren, kann es zu einem Problem kommen, für das Sie keine Lösung finden Die derzeit eingesetzten Tools scheinen ineffektiv zu sein.
Ihr Ansatz besteht darin, ein XMLHttpRequest-Objekt zu erstellen und eine GET-Anfrage an PHP zu senden Skript (download.php), das bestimmte Header setzt und Daten aus einer Datei liest. Allerdings löst diese Methode nicht die erwartete Download-Aufforderung aus.
Lösung
Der Kern des Problems liegt in der Tatsache, dass AJAX allein Dateidownloads nicht direkt initiieren kann. Um dies zu erreichen, können Sie eine von zwei Methoden nutzen:
Fenster.location verwenden
Diese Methode ist unkompliziert und erfordert keine AJAX-Anfrage. Weisen Sie einfach die Download-URL window.location zu.
window.location = "download.php";
Dadurch wird zum Download-Skript navigiert und der Benutzer wird aufgefordert, die Datei herunterzuladen, ohne die aktuelle Seite zu ändern.
Verwenden das Download-Attribut (HTML5)
Wenn die Browserunterstützung ein Problem darstellt, sollten Sie die Verwendung des Download-Attributs in Betracht ziehen (unterstützt von Firefox und Chrome).
<a href="download.php" download>Download File</a>
Das Download-Attribut fordert den Benutzer auf, die Datei herunterzuladen, ohne die aktuelle Seite zu verlassen.
Das obige ist der detaillierte Inhalt vonWarum löst AJAX keine Dateidownloads aus und welche Alternativen gibt es?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!