下载blob文件及将错误的blob信息转换成json对象
调用导出接口下载后端的excel文件,当错误时后端返回json信息,因请求头设置了
responseType: 'blob',
所以,json格式返回到前端时变成了blob对象,转回去,显示
if(res.data.type == 'application/json') {
//错误提示
const reader = new FileReader();
reader.readAsText(res.data, 'utf-8');
reader.onload = function (e) {
const readerres = reader.result;
const parseObj = JSON.parse(readerres);
Message({
message: parseObj.message,
type: 'error'
})
}
} else {
// 正常下载
const xhr=res.request;
const headers = xhr.getAllResponseHeaders();
const contentDisposition = xhr.getResponseHeader("Content-Disposition");
const url = URL.createObjectURL(res.data);
const fileName = decodeURI( contentDisposition.split("filename=")[1].split(";filename*=")[0])
const link = document.createElement('a');
link.href = url;
link.download = fileName;
link.click();
link.remove();
}
完事