对于寻求更现代方法的用户,可以使用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
,以使服务器知道它将接收的请求的类型。