我正在尝试使用jquery的ajax下载文件。我需要下载该文件,然后将其保存到用户的设备。我这样做的原因是因为我需要为下载请求添加身份验证。
我设法获得以下代码,它适用于普通浏览器 Chrome和Firefox。
这是代码:
$.ajax({
url: url,
type: "GET",
xhrFields: {
responseType: 'blob'
},
//contentType: "application/octet-stream",
processData: false,
crossDomain: true,
beforeSend: function (xhr)
{
xhr.setRequestHeader("Authorization", "Bearer " + auth.accessToken);
},
dataType: 'binary'
}).done(..).fail(..).always(..);
永远不会调用Done,Fail或always函数。 IE就坐在那里,在网络请求中显示“待定”。 我尝试过/没有内容类型。
在我的最后一次尝试中,IE实际上已经崩溃了。 Edge有时会安静地关闭。 我正在测试在我的本地开发机器上下载1GB文件。
如上所述,它适用于其他浏览器。
我的后备是创建一个带有令牌信息作为查询参数的URL,但这不是一个好习惯。
我对此问题的解决方案或以内置身份验证的方式下载文件的方式不同。