//在axios请求时 添加一个字段 responseType='blob' (一定要添加)
//axios内添加请求拦截器
response => {
//如果有这个blob字段 就进入条件
if(response.config && response.config.responseType == 'blob') {
//type内写请求头的类型
const blob = new Blob([response.data], { type: 'application/octet-stream;charset=utf-8' }); //application/vnd.openxmlformats-officedocument.spreadsheetml.sheet这里表示xlsx类型
let filename = decodeURI(response.headers['filename']);
if ('download' in document.createElement('a')) {
const downloadElement = document.createElement('a');
let href = '';
if(window.URL) href = window.URL.createObjectURL(blob);
else href = window.webkitURL.createObjectURL(blob);
downloadElement.href = href;
downloadElement.download = filename;
document.body.appendChild(downloadElement);
downloadElement.click();
if(window.URL) window.URL.revokeObjectURL(href);
else window.webkitURL.revokeObjectURL(href);
document.body.removeChild(downloadElement);
} else {
navigator.msSaveBlob(blob, filename);
}
return;
}
}
前端下载后台返的二进制
最新推荐文章于 2024-07-29 13:47:29 发布