场景:在进行文件下载或者导出、通常接受blob二进制文件流、此时后端在某种情况下无法下载文件、需求前端进行错误处理。如果不对blob类型结果进行转化,前端无法进行错误信息获取。
返回错误消息,在控制台输出如下:
正常的文件流结果:
为了能将错误消息进行展示,需要在请求获取到结果后判断data.type,如果是‘text/html’则将blob转化为json格式,然后进行错误提示即可。
if (res.data.type === 'text/html') {
let reader = new FileReader()
reader.readAsText(res.data, 'utf-8')
reader.onload = () => {
const { msg } = JSON.parse(reader.result)
Message({
message: msg,
type: 'error',
duration: 5 * 1000
})
}
} else {
return res
}