如何从URL下载文件。
以下代码仅适用于chrome:
$.ajax({
url: '/xls',
data: {_csrf: this.csrf, hist:historicData },
method: 'POST',
// beforeSend: function(xhr){
// xhr.setRequestHeader('historic', historicData);
// },
xhrFields: {
responseType: 'blob'
},
success: function (data) {
var a = document.createElement('a');
a.style = "display: none";
var blob = new Blob(data, {type: "application/octet-stream"});
var url = window.URL.createObjectURL(blob);
a.href = url;
a.download = filename;
document.body.appendChild(a);
a.click();
setTimeout(function(){
document.body.removeChild(a);
window.URL.revokeObjectURL(url);
}, 100);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
在Firefox上没有任何阻碍。
Firefox版本:63.0.3(64位)
Chrome版本:70.0.3538.110
网络:
请求URL:http://localhost:3000/xls请求方法:POST远程 地址:[:: 1]:3000状态码:200 ok
预览:AAB4bC93b3JrYm9vay54bWxQSwECFAAKAAAAAAD .......
响应头(519 B)缓存控制无缓存,私有,无存储, m…= 0,后检查= 0,预检查= 0连接保持有效 内容配置附件; filename = xingamento内容类型
application / vnd.ms-excel日期,星期四,2018年11月29日23:38:17 GMT 严格运输安全max-age = 15552000; includeSubDomains 传输编码分块的X-Content-Type-Options nosniff X-DNS-Prefetch-控制关闭X-Download-Options noopen X-Frame-Options SAMEORIGIN X-XSS-Protection 1;模式=阻止