Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Muat Turun Fail Secara Asynchronously dalam Aplikasi Struts2 Menggunakan Ajax?
Masalah:
Dalam aplikasi Struts2, panggilan jQuery Ajax mendapatkan semula data strim binari mewakili fail untuk dimuat turun, tetapi pengguna tidak dapat menyimpan fail tersebut setempat.
Penyelesaian:
Pendekatan Penyemak Imbas Moden (2019 dan Kemudian)
Untuk pelayar moden, pendekatan yang dipermudahkan boleh diterima pakai:
Gunakan fetch() API untuk mengambil fail:
fetch('https://jsonplaceholder.typicode.com/todos/1') .then(resp => resp.blob())
Buat URL objek untuk fail:
.then(blob => { const url = window.URL.createObjectURL(blob);
Buat yang tersembunyi elemen dan tetapkan atributnya:
const a = document.createElement('a'); a.style.display = 'none'; a.href = url; a.download = 'todo-1.json';
Tambahkan elemen pada dokumen dan klik padanya:
document.body.appendChild(a); a.click();
Alih keluar URL objek :
window.URL.revokeObjectURL(url);
Beritahu pengguna yang berjaya muat turun:
alert('your file has downloaded!');
Pertimbangan Tambahan:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Muat Turun Fail Secara Asynchronously dalam Aplikasi Struts2 Menggunakan Ajax?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!