Heim > Web-Frontend > js-Tutorial > Wie kann ich mit Ajax einen Dateidownload auslösen, ohne die Benutzerinteraktion zu unterbrechen?

Wie kann ich mit Ajax einen Dateidownload auslösen, ohne die Benutzerinteraktion zu unterbrechen?

Mary-Kate Olsen
Freigeben: 2024-12-28 19:41:11
Original
687 Leute haben es durchsucht

How Can I Trigger a File Download Using Ajax Without Interrupting User Interaction?

Datei-Download mit Ajax aktivieren

Im Zeitalter der asynchronen Programmierung ist es oft notwendig, eine Datei herunterzuladen, ohne die Benutzerinteraktion zu unterbrechen. In dieser Frage wird untersucht, wie eine Datei mit Ajax heruntergeladen wird, während der Benutzer aufgefordert wird, die Datei lokal zu speichern.

In der bereitgestellten Struts2-Aktion kann eine Datei mithilfe eines Stream-Ergebnisses heruntergeladen werden. Wenn Sie jedoch mit jQuery direkt in diese Aktion posten, wird die Datei im Browser als Binärstream gerendert. Um das Datei-Download-Fenster auszulösen, ist ein anderer Ansatz erforderlich.

Moderne Browser-Lösung

Moderne Browser bieten eine einfachere Lösung. Mit der fetch()-API können Sie die Datei als Blob abrufen und eine temporäre URL zum Herunterladen erstellen.

fetch('https://jsonplaceholder.typicode.com/todos/1')
  .then(resp => resp.blob())
  .then(blob => {
    const url = window.URL.createObjectURL(blob);
    const a = document.createElement('a');
    a.style.display = 'none';
    a.href = url;
    // Set the download filename
    a.download = 'todo-1.json';
    document.body.appendChild(a);
    a.click();
    window.URL.revokeObjectURL(url);
    alert('File download complete!');
  })
  .catch(() => alert('File download failed!'));
Nach dem Login kopieren

Dieser Ansatz erfordert einen modernen Browser mit Unterstützung für die fetch()-API und createObjectURL() Methode.

Das obige ist der detaillierte Inhalt vonWie kann ich mit Ajax einen Dateidownload auslösen, ohne die Benutzerinteraktion zu unterbrechen?. 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