这里写自定义目录标题
说明
在开发项目中,我们经常会碰到,后端给出的接口,前端需要在触发那一刻请求接口,直接下载文件。下面直接列出下载文件流的代码
let token=local.get("token",null); // 通过自己项目的方式,拿到token
let init = {
method: 'POST',
mode: 'cors',
cache: 'no-cache',
headers:{
'Content-Type': "application/json",
'X-Token': token
},
// 此处的list是请求接口需要的传参,根据自己项目接口情况来写
body: JSON.stringify(list)
};
// api/api/api 为请求的接口
fetch("api/api/api", init).then((response) => {
return response.blob();
}).then(mydata => {
let url = window.URL.createObjectURL(mydata);
let a = document.createElement("a");
a.href = url;
// 将文件流转换为excel, excel文件名以当前下载时间命名
a.download = `${moment().format("YYYYMMDDHHmmss")}.xls`;
if (document.all) {
a.click();
} else {
let evt = document.createEvent("MouseEvents");
evt.initEvent("click", true, true);
a.dispatchEvent(evt);
}
// 此处可写入请求成功时项目相关功能的处理
}).catch((error) => {
// 接口请求失败时,错误提示信息可在此处弹出
});