今天在处理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();