Heim > Web-Frontend > js-Tutorial > Wie kann ich einen Dateidownload mit AJAX auslösen und was sind die besten Methoden?

Wie kann ich einen Dateidownload mit AJAX auslösen und was sind die besten Methoden?

Barbara Streisand
Freigeben: 2024-12-06 02:04:10
Original
563 Leute haben es durchsucht

How Can I Trigger a File Download Using AJAX, and What Are the Best Methods?

AJAX-gesteuerter Datei-Download: Ein Leitfaden

Im Bereich der Webentwicklung entsteht die Notwendigkeit, Dateien direkt vom Server herunterzuladen eine AJAX-Anfrage. Um dies zu erreichen, können verschiedene Ansätze genutzt werden.

Ein Standardansatz besteht darin, beim Klicken auf eine Schaltfläche eine AJAX-Anfrage zu initiieren. Hier ist ein Skript, das dies versucht:

var xhr = new XMLHttpRequest();
xhr.open("GET", "download.php");
xhr.send();
Nach dem Login kopieren

Um die Datei zum Herunterladen bereitzustellen, kann ein PHP-Skript wie dieses verwendet werden:

<?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

Diese Methode führt jedoch möglicherweise nicht zum gewünschten Ergebnis Verhalten. Daher ist eine alternative Strategie erforderlich.

Aktualisierte Lösung: Einführung des Download-Attributs

In der HTML5-Landschaft taucht das Download-Attribut auf. Dieses Attribut wird von bekannten Browsern wie Firefox und Chrome (und bald auch IE11) unterstützt und bietet eine optimierte Lösung für das Herunterladen von Dateien.

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

Solange sich die Datei am selben Ursprung wie die Website befindet, ist sie verfügbar kann mit diesem Attribut heruntergeladen werden.

Legacy-Lösung: Verwendung von AJAX und Window Umleiten

Vor der Einführung des Download-Attributs bestand eine Problemumgehung darin, eine AJAX-Anfrage oder eine window.location-Manipulation zu verwenden.

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

Die direkte Verwendung von window.location ist jedoch eine weitere Möglichkeit effiziente Lösung in diesem Zusammenhang.

Das obige ist der detaillierte Inhalt vonWie kann ich einen Dateidownload mit AJAX auslösen und was sind die besten Methoden?. 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