Bagi mereka yang mencari pendekatan yang lebih modern, Anda dapat menggunakan fetch API. Contoh berikut menunjukkan cara mendownload file spreadsheet. Itu mudah dilakukan dengan kode berikut.
fetch(url, {
body: JSON.stringify(data),
method: 'POST',
headers: {
'Content-Type': 'application/json; charset=utf-8'
},
})
.then(response => response.blob())
.then(response => {
const blob = new Blob([response], {type: 'application/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'});
const downloadUrl = URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = downloadUrl;
a.download = "file.xlsx";
document.body.appendChild(a);
a.click();
})
Saya yakin pendekatan ini jauh lebih mudah dipahami daripada XMLHttpRequestsolusi lain . Juga, ia memiliki sintaks yang mirip dengan jQuerypendekatan tersebut, tanpa perlu menambahkan pustaka tambahan.
Tentu saja, saya akan menyarankan untuk memeriksa browser mana yang Anda kembangkan, karena pendekatan baru ini tidak akan berfungsi di IE. Anda dapat menemukan daftar kompatibilitas browser lengkap pada tautan berikut .
Penting : Dalam contoh ini saya mengirim permintaan JSON ke server yang mendengarkan yang diberikan url. Ini urlharus diatur, pada contoh saya, saya berasumsi Anda tahu bagian ini. Juga, pertimbangkan tajuk yang diperlukan agar permintaan Anda berfungsi. Karena saya mengirim JSON, saya harus menambahkan Content-Typeheader dan mengaturnya ke application/json; charset=utf-8, agar server mengetahui jenis permintaan yang akan diterimanya.