axios设置responseType: ‘blob‘,获取接口返回的错误信息

在axios的请求中当后端接口返回的是文件流的情况下,我们需要在请求参数里面设置responseType: 'blob',如果接口报错,默认前端无法获取后端返回的错误信息。
解决方法:通过FileReader获取错误信息

js 复制代码
    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) // 错误提示信息,根据接口返回内容不同
        } 
      }
    }
  1. 接口正确返回文件流,打印出来的res

network中返回的是文件流数据

  1. 接口报错的情况,打印出来的res

    实际network中的内容
相关推荐
itmigrate8 小时前
前端项目里,Object.is 并不是 === 的平替
前端
小大宇10 小时前
Vue知识点6-computed计算属性
前端·javascript·vue.js
程序员海军10 小时前
尤雨溪 : Vue 4 已经在规划中了!
前端·javascript·vue.js
2601_9499706910 小时前
HumanizeDuration 跨端三方库仓颉适配全流程
前端·javascript·flutter
风骏时光牛马12 小时前
后端服务接口开发与性能优化
前端
kyriewen12 小时前
我让 4 个 AI 互相 review 代码,最温柔的那个下手最狠
前端·程序员·ai编程
计算机魔术师12 小时前
493家公司白砸AI钱?Apollo这组数据戳破了幻觉
前端
深蓝冰河13 小时前
全脑记忆法创始人的2套快速记忆法pdf 书下载地址
pdf
IT_陈寒13 小时前
Java静态变量初始化坑得我头皮发麻
前端·人工智能·后端
天外飞雨道沧桑13 小时前
我在浏览器里练了一个 792 参数的大模型,它学会了补全 JavaScript
开发语言·javascript·ai·ecmascript·ai编程