ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

接口返回blob和json两种格式时,前端怎么处理

2021-11-10 09:58:48  阅读:516  来源: 互联网

标签:返回 responseType 接口 json blob reader 格式


为什么会这样?

下载文件的接口一般会返回blob或者ArrayBuffer的格式,但是当不符合下载条件时,后端会返回json格式提示为何不能下载,但是responseType只能设置一种格式,这时只能设置responseType="blob"或者responseType="ArrayBuffer",当返回json时,我们把blob或者ArrayBuffer格式转为json即可。

以下是接口返回json,但是因为前端设置了responseType="blob",所以response是blob类型,这时获取responseText也会报错。

 responseText: [Exception: DOMException: Failed to read the 'responseText' property from 'XMLHttpRequest': 

如何讲blob类型的二进制流转换成JSON格式

// 将blob转为json

let reader = new FileReader()
reader.addEventListener("loadend", () => {
    // 将会打印json格式
    console.log(JSON.parse(reader.result))
})
// 如果转换完中文出现乱码,可以设置一下代码
reader.readAsText(xhr.response, "utf-8")

这样,在返回blob时正常下载,在返回json时,转换一下,即可正常获取返回的json提示信息。

标签:返回,responseType,接口,json,blob,reader,格式
来源: https://blog.csdn.net/makelucky/article/details/121241852

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有