解决方案一:
axios({
method: method,
headers: {
'Content-Type': 'application/json; application/octet-stream'
},
url: root+url,
params:parm,
data: data,
responseType: 'arraybuffer'
})
.then(res=>{
let b = new Blob([res.data], { type: 'application/vnd.ms-excel' });
let url = URL.createObjectURL(b);
let link = document.createElement('a');
link.download = 'name.xls';
link.href = url;
link.click();
})
.catch(err=>{
// console.log(err);
})
解决方案二:
axios({
method: method,
headers: {
'Content-Type': 'application/json; application/octet-stream'
},
url: root+url,
params:parm,
data: data,
responseType: 'blob'
})
.then(res=>{
const blob = new Blob([res.data]);
const fileName = 'xxx.xls';
const linkNode = document.createElement('a');
linkNode.download = fileName; //a标签的download属性规定下载文件的名称
linkNode.style.display = 'none';
linkNode.href = URL.createObjectURL(blob); //生成一个Blob URL
document.body.appendChild(linkNode);
linkNode.click(); //模拟在按钮上的一次鼠标单击
URL.revokeObjectURL(linkNode.href); // 释放URL 对象
document.body.removeChild(linkNode);
})
.catch(err=>{
// console.log(err);
})