avatar

将定义为Blob类型的数据转换成Json类型的数据

问题描述

1
使用axios实现post请求方式下载文件时,需要将返回的数据类型提前定义为Bolb类型,表示其返回的是一个文件;在正常情况下后端返回到前端的是一个文件,但是当出现前端提交的参数错误或后端的程序运行异常等等情况时,后端返回给前端的数据就应该变为Json类型的数据,方便前端对错误信息等进行弹窗

解决方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
axios.post(`${BASEURL}/mobileoperator/mobileOperatorInvitation/dataCollation`,
this.map, {responseType: 'blob'}).then(response => {

/* 判断返回的数据类型是否为json类型 */
if (response.data.type === "application/json") {

/* 创建读取文件对象 */
let fileReader = new FileReader();
/* 读取文件数据 */
fileReader.readAsText(response.data, 'utf-8')
/* 请求完结事件 */
fileReader.addEventListener("loadend", () => {

/* 数据转json类型 */
let parse = JSON.parse(fileReader.result);
/* 此处的baseResponse为后端返回的键,可按对应的后端返回类修改 */
let baseResponse = parse.baseResponse;

/* iView异常弹窗 */
this.$Notice.error({
desc: baseResponse.message,
duration: 1
})
})
}
})
文章作者: 123
文章链接: https://gao5805123.github.io/123/2021/05/06/%E5%B0%86%E5%AE%9A%E4%B9%89%E4%B8%BABlob%E7%B1%BB%E5%9E%8B%E7%9A%84%E6%95%B0%E6%8D%AE%E8%BD%AC%E6%8D%A2%E6%88%90Json%E7%B1%BB%E5%9E%8B%E7%9A%84%E6%95%B0%E6%8D%AE/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 123
打赏
  • 微信
    微信
  • 支付宝
    支付宝