js处理下载文件流

今天在处理excel下载时,后端给我传了一个文件流,发现使用ajax处理不了,后来在网上查阅资料终于给解决了。

//  获取时间戳
let timestamp=new Date().getTime();
// 获取XMLHttpRequest
let xmlResquest = new XMLHttpRequest();
//  发起请求
xmlResquest.open("POST", ImgUrlPrefix + "/api/export_man_hour", true);
// 设置请求头类型
xmlResquest.setRequestHeader("Content-type", "application/json");
//  设置请求token
xmlResquest.setRequestHeader(
"Authorization",
Vue.cookie.get('token')
);
xmlResquest.responseType = "blob";
//  返回
xmlResquest.onload = function(oEvent) {
let content = xmlResquest.response;
// 组装a标签
let elink = document.createElement("a");
// 设置下载文件名
elink.download = timestamp + ".xlsx";
elink.style.display = "none";
let blob = new Blob([content]);
elink.href = URL.createObjectURL(blob);
document.body.appendChild(elink);
elink.click();
document.body.removeChild(elink);
};
xmlResquest.send();

你可能感兴趣的:(js处理下载文件流)