错误方式,使用jquery,因为jquery将返回的数据转换成了strting,不支持blob类型
function download() {
var url = 'download/?filename=aaa.docx';
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true); // 也可以使用POST方式,根据接口
xhr.responseType = "blob"; // 设置返回类型blob
// 定义请求完成的处理函数,请求前也可以增加加载框/禁用下载按钮逻辑
xhr.onload = function () { // 请求完成
if (this.status === 200) { // 返回200
var blob = this.response;
var reader = new FileReader();
reader.readAsDataURL(blob); // 转换为base64,可以直接放入a标签的href reader.onload = function (e) { // 转换完成,创建一个a标签用于下载
var a = document.createElement('a');
a.download = 'data.docx';
a.href = e.target.result;
$("body").append(a); // 修复firefox中无法触发click
a.click();
$(a).remove();
}
}
}; // 发送ajax请求
xhr.send()
}
作者:忍不住的k
链接:https://www.jianshu.com/p/35268ad307e2
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。