vue项目中下载文件时Blob对象转为JSON对象
背景需要实现文件下载的功能,有如下两种情况:如果符合条件,返回文件流如果不符合条件,则后端返回JSON,附上失败的msg,前端需要将msg的内容展示给用户最开始,我只想到了成功的情况,在请求接口时,设置responseType: 'blob',返回Blob对象后进行处理下载可是完全忽略了失败的情况,导致接收不到返回的json对象解决方法getQuaDownload(this.applyId,thi
·
背景
需要实现文件下载的功能,有如下两种情况:
- 如果符合条件,返回文件流
- 如果不符合条件,则后端返回JSON,附上失败的msg,前端需要将msg的内容展示给用户
最开始,我只想到了成功的情况,在请求接口时,设置responseType: 'blob'
,返回Blob对象后进行处理下载
可是完全忽略了失败的情况,导致接收不到返回的json对象
解决方法
getQuaDownload(this.applyId,this.id).then(result=>{
if(result.type=='application/json'){
const reader = new FileReader()
reader.onload = function () {
const { msg } = JSON.parse(reader.result)//此处的msg就是后端返回的msg内容
alert(msg)
}
reader.readAsText(result)
}else{
let url = window.URL.createObjectURL(result);
this.url=url;
}
})
更多推荐
所有评论(0)