axios设置responseType: ‘blob‘,获取接口返回的错误信息
在axios的请求中当后端接口返回的是文件流的情况下,我们需要在请求参数里面设置
responseType: 'blob'
,如果接口报错,默认前端无法获取后端返回的错误信息。
解决方法:通过
FileReader
获取错误信息
async handleFetch() {const res =await idleApi.toSign({file: 'pdf',});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 msg = JSON.parse(fileReader.result)console.log(msg?.sys_header?.message) // 错误提示信息,根据接口返回内容不同} }}
- 接口正确返回文件流,打印出来的
res
network中返回的是文件流数据
- 接口报错的情况,打印出来的
res
实际network中的内容