文件预览或下载中,axios设置responseType:blob时对于后台报错信息的捕获兼容;

接口返回blob和json两种格式时,前端怎么处理
文件预览或下载中,axios设置responseType:blob时对于后台报错信息的捕获兼容,如果response.data.type是application/octet-stream,处理流数据及进行下载,如果是application/json,把返回的数据转化为JSON格式后获取message,code等,可以使用try catch,在try里面正常拿到数据进行下载处理,而在catch中先对数据流进行转化,然后再处理错误,如下:
  if (出错) {
            let reader = new FileReader()
            reader.onload = e => {
                if (e.target.readyState === 2) {
                  let res = {}
                  res = JSON.parse(e.target.result)
                  console.info('back:: ', res)
                }
           }
           reader.readAsText(response)
        }

  

posted on 2022-10-06 23:02  yemiaomiao  阅读(312)  评论(0编辑  收藏  举报

导航