Datei mit AJAX-Anfrage herunterladen
Beim Versuch, eine „Ajax-Download-Anfrage“ per Knopfdruck zu initiieren, ist es üblich, Code wie den zu implementieren unten:
var xhr = new XMLHttpRequest(); xhr.open("GET", "download.php"); xhr.send();
Zusammen mit dem folgenden PHP Skript:
<? header("Cache-Control: public"); header("Content-Description: File Transfer"); header("Content-Disposition: attachment; filename= file.txt"); header("Content-Transfer-Encoding: binary"); readfile("file.txt"); ?>
Dieser Ansatz führt jedoch möglicherweise nicht zum gewünschten Ergebnis. Um einen Download effektiv zu starten, sollten Sie die Implementierung einer der folgenden Alternativen in Betracht ziehen:
Option 1: Verwenden Sie das Attribut „Download“
In modernen Browsern wie Firefox und Chrome ist die Das Attribut „Download“ bietet eine bequeme Möglichkeit, Downloads von einer Webseite aus zu starten, ohne dass eine serverseitige Interaktion erforderlich ist. Hier ist ein Beispiel:
<a href="file.txt" download="file.txt">Download</a>
Option 2: Navigieren Sie mit AJAX oder Window.location zum Download-Skript
Wenn das Attribut „Download“ nicht geeignet ist Option können Sie AJAX oder window.location verwenden, um zum Download-Skript zu navigieren. Mit AJAX können Sie eine asynchrone Anfrage ausführen und dann die Erfolgsrückruffunktion verwenden, um zum Download-Skript umzuleiten:
$.ajax({ url: 'download.php', type: 'POST', success: function() { window.location = 'download.php'; } });
Alternativ können Sie einfach window.location verwenden, um zum Download-Skript zu navigieren:
window.location = 'download.php';
Während der AJAX-Ansatz eine gewisse Flexibilität bietet, ist die Verwendung von window.location in der Regel effizienter und unkomplizierter.
Das obige ist der detaillierte Inhalt vonWie löst man einen Dateidownload mit AJAX aus: Direkter Download oder serverseitige Umleitung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!