Heim > Web-Frontend > js-Tutorial > Wie kann ich Dateidownloads mit Ajax-Anfragen auslösen?

Wie kann ich Dateidownloads mit Ajax-Anfragen auslösen?

Mary-Kate Olsen
Freigeben: 2024-12-19 14:56:09
Original
894 Leute haben es durchsucht

How Can I Trigger File Downloads with Ajax Requests?

Dateien mit Ajax-Anfragen herunterladen

Die Implementierung einer Funktion zum Herunterladen von Dateien beim Klicken auf eine Schaltfläche mit Ajax kann zu Herausforderungen führen. Lassen Sie uns eine Lösung finden, um diese Hindernisse zu überwinden.

Erster Versuch

Ein erster Versuch, dies zu erreichen, besteht darin, eine XMLHttpRequest zu erstellen und eine GET-Anfrage an ein PHP-Skript zu senden gezeigt unten:

javascript:
var xhr = new XMLHttpRequest();
xhr.open("GET", "download.php");
xhr.send();

download.php:
<?
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename= file.txt");
header("Content-Transfer-Encoding: binary");    
readfile("file.txt");
?>
Nach dem Login kopieren

Einschränkungen

Diese Methode greift jedoch aufgrund von Browsereinschränkungen zu kurz. Ajax-Anfragen können die Download-Eingabeaufforderung nicht direkt auslösen; Stattdessen muss man zu der Datei navigieren, damit es auftritt.

Lösung

Es stehen zwei Ansätze zur Verfügung:

1. Verwendung von window.location und Fallback

Verwenden Sie die Eigenschaft window.location, um zum Download-Skript zu navigieren und den Download auszulösen:

$.ajax({
    url: 'download.php',
    type: 'POST',
    success: function() {
        window.location = 'download.php';
    }
});
Nach dem Login kopieren

2. HTML5-Download-Attribut

Für moderne Browser kann das HTML5-Download-Attribut verwendet werden:

<a href="download.php" download>
  Download File
</a>
Nach dem Login kopieren

Hinweis:

- Das Download-Attribut wird nur in Chrome, Firefox und späteren Internetversionen unterstützt Explorer.

- Stellen Sie sicher, dass die herunterzuladende Datei vom gleichen Ursprung ist wie die Hostseite.

Das obige ist der detaillierte Inhalt vonWie kann ich Dateidownloads mit Ajax-Anfragen auslösen?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage