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中的内容
相关推荐
用户921080262869 小时前
前端 Vue 专栏 05:从 Object.defineProperty 到 Proxy,彻底理解 Vue 响应式原理
前端
Fluxart.ai10 小时前
GPT Image 2.5 有使用次数限制吗?额度、并发、频率限制说明
服务器·前端·gpt
程序员海军10 小时前
AI 越来越强,为什么打工人反而越来越累、越来越内耗了?
前端·程序员·aigc
vx_Biye_Design10 小时前
springboot游泳馆系统93765-计算机课程设计、毕业设计
java·javascript·spring boot·后端·python·spring·课程设计
晴天1610 小时前
VSCodium 项目介绍
前端·javascript·vscode
世岩清上10 小时前
展厅数字内容同质化严重,怎样打造专属叙事风格?
大数据·前端·javascript·人工智能·html·音视频·展厅改造
晴天1610 小时前
前端动画体系全解析:类型、实现方案与工程选型最佳实践
前端
持敬chijing11 小时前
Web前后端开发-JavaScript 入门教程
开发语言·前端·javascript
专业程序开发源11 小时前
springbootLivehouse票务系统-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·课程设计·pygame
李高钢11 小时前
Python Django 框架入门:从零搭建你的第一个 Web 应用
前端·python·django