标签:返回 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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。