在axios的请求中当后端接口返回的是文件流的情况下,我们需要在请求参数里面设置responseType: ‘blob’,如果接口报错,默认前端这里是引用无法获取后端返回的错误信息。
解决方法:通过FileReader获取错误信息
async handleFetch() {
const res = await reportExport({
groupCode:timeForm.rowItem.code,
startTime: timeForm.dateArr[0],
endTime: timeForm.dateArr[1],
})
console.log(res)
// 错误处理
if(!res.headers['content-disposition']) {
const fileReader = new FileReader()
fileReader.readAsText(new Blob([res.data], { type: 'application/octet-stream' }), 'utf-8')
fileReader.onload = () => {
const result= JSON.parse(fileReader.result)
console.log(result?.msg || result?.message) // 错误提示信息,根据接口返回内容不同
}
}
}
1.接口正确返回的文件流
2.接口返回错误,处理过后打印的结果result