Đối với những người tìm kiếm một cách tiếp cận hiện đại hơn, bạn có thể sử dụng fetch API
. Ví dụ sau đây cho thấy cách tải xuống tệp bảng tính. Nó được thực hiện dễ dàng với đoạn mã sau.
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();
})
Tôi tin rằng cách tiếp cận này dễ hiểu hơn nhiều so với các XMLHttpRequest
giải pháp khác . Ngoài ra, nó có cú pháp tương tự như jQuery
cách tiếp cận, mà không cần thêm bất kỳ thư viện bổ sung nào.
Tất nhiên, tôi khuyên bạn nên kiểm tra xem bạn đang phát triển trình duyệt nào, vì cách tiếp cận mới này sẽ không hoạt động trên IE. Bạn có thể tìm thấy danh sách tương thích đầy đủ của trình duyệt trên liên kết sau .
Quan trọng : Trong ví dụ này, tôi đang gửi một yêu cầu JSON đến một máy chủ đang lắng nghe trên một url
. Điều này url
phải được thiết lập, trên ví dụ của tôi, tôi giả sử bạn biết phần này. Ngoài ra, hãy xem xét các tiêu đề cần thiết để yêu cầu của bạn hoạt động. Vì tôi đang gửi JSON, tôi phải thêm Content-Type
tiêu đề và đặt nó thành application/json; charset=utf-8
, để cho máy chủ biết loại yêu cầu mà nó sẽ nhận được.