后台返回blob数据转JSON时遇到的问题
查询如何将后台二进制转为Blob对象的时候,统一说法就是在请求的时候添加 responseType:'blob',从而拿到的数据就是blob对象
(1)如果不在请求中设置responseType: 'blob' 文件流可以正常下载,但是打开excel时会报错。我们下载的文件是有问题的。
所以我们必须在请求中设置responseType: 'blob'
(2)这时候就来了另外一个问题。
加了responseType: 'blob' 之后,原本正确场景返回的json数据被改成了blob数据了。
所以我们要针对返回的数据做不同的处理。
正确时我们需要将blob数据转为json数据(type值为:application/json,以此作为判断条件)
// 如果返回的是json格式,将blob数据转为json数据。
if (res.data.type === 'application/json') {
let reader = new FileReader()
reader.readAsText(res.data, 'utf-8')
reader.onload = (e) => {
// JSON.parse(reader.result) 转译后的json数据
res.data = JSON.parse(reader.result)
// 处理相关逻辑...
} else {
// 文件流,下载文件逻辑...
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!