下载接口返回的文件流
2022-04-01 本文已影响0人
LingSun
原生写法
var xhr = new XMLHttpRequest();
xhr.open("POST", exportOrganExcel);
xhr.setRequestHeader('Content-Type', 'application/json')
xhr.responseType = 'blob' // 这个必须设置
xhr.send(JSON.stringify(params));
xhr.onload=function(){
if(xhr.status === 200) {
// 通过Blob转化文件流并下载
let blob = new Blob([xhr.response], { type: "application/x-xls" }); // xhr.response--后台返回的文件流
let link = document.createElement("a");
link.href = window.URL.createObjectURL(blob);
link.setAttribute('download', `列表名称.xls`)
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
}
}
axios请求
axios({
method: 'get',
url: `/huishanModel/export/model`,
responseType: 'blob'
})
.then(res => {
let blob = new Blob([res.data], { type: 'application/x-xls' }); //res.data--后台返回的文件流
let link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.setAttribute('download', `文件名称.xls`);
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
})
.catch(Error => {
reject(Error);
});