axios请求后台文件流,前端下载封装
downLoadXls (urls,datas,names) {
this.$axios({
method: 'post',
url: urls,
headers: {
'Content-Type': 'application/json',
//可以传token等信息
},
data:datas,
// 二进制流文件,一定要设置成blob,默认是json
responseType: 'blob'
}).then(res => {
// console.log(res)
if(!res.data){
return
}
var name = names+'.xlsx';
var blob = new Blob([res.data]);
var url = window.URL.createObjectURL(blob);
var aLink = document.createElement("a");
aLink.style.display = "none";
aLink.href = url;
aLink.setAttribute("download", name);
document.body.appendChild(aLink);
aLink.click();
document.body.removeChild(aLink); //下载完成移除元素
window.URL.revokeObjectURL(url); //释放掉blob对象
})
}
调用
this.downLoadXls('地址','数据','mode')