处理文件下载失败,如何将Blob对象转换为Json?

描述】:
axios在处理文件下载时设置了responseType:blob,期望下载失败时在前端报后端返回的错误,
但此时后端返回的错误信息Json已经被转为blob对象,请问如何将blob对象转回原来的Json呢?

或者说怎么处理拦截,因为blob对象时axios拦截器无法判断该进then还是catch。
而后端返回非200的错误状态码时又不会返回Json对象解析

相关代码

// axios配置export function exportResult(params) {  return noRejectRequest({    url: ...,    method: ...,    responseType: 'blob', // 转换为Blob对象而不是DOMString
    params
  })
}// api请求exportResult({...})
.then(res => {
     ...  // 成功处理})
.catch(err => {
     ...  // 失败处理,此时后端会返回Json格式错误})

相似问题
axios 的responseType 类型动态设置 - Celia的回答 - SegmentFault 思否
https://segmentfault.com/q/10...


繁星点点滴滴
浏览 2075回答 1
1回答

富国沪深

使用FileReadervar reader = new FileReader() reader.onload = e => console.log(JSON.parse(e.target.result)) reader.readAsText(blob)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript