Для тих, хто шукає більш сучасний підхід, ви можете використовувати fetch API
. У наступному прикладі показано, як завантажити файл електронної таблиці. Це легко зробити за допомогою наступного коду.
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();
})
Я вважаю, що такий підхід набагато легше зрозуміти, ніж інші XMLHttpRequest
рішення. Крім того, він має подібний синтаксис до jQuery
підходу, без необхідності додавати додаткові бібліотеки.
Звичайно, я порадив би перевірити, який браузер ви розробляєте, оскільки цей новий підхід не працюватиме в IE. Повний список сумісності браузера можна знайти за наступним посиланням .
Важливо : У цьому прикладі я надсилаю запит JSON на сервер, який прослуховує дані url
. Це url
потрібно встановити, на моєму прикладі я припускаю, що ви знаєте цю частину. Також враховуйте заголовки, необхідні для роботи вашого запиту. Оскільки я надсилаю JSON, я повинен додати Content-Type
заголовок і встановити його application/json; charset=utf-8
, щоб повідомити сервер про тип запиту, який він отримає.