后端返回的json数据为:
{"success":false, "message":"操作失败,没有需要下载的文件","code":500}
前端捕获到的Blob数据:
解决方法:服务响应的统一拦截器中判断blob类型,输出异常信息:
import Vue from 'vue'
import axios from 'axios'
const service=axios.create({
baseUrl:xxxxx,
timeout:3600000
})
//response interceptor
service.interceptors.response.use(response)=>{
if(response.status==200 &&b response.config.responseType=='blob'){
if(response.data.size==0 || response.headers['content-type'].includes('json'){
let data=response.data
let fileReader=new FileReader()
fileReader.readAsText(data)
fileReader.onload=function(result){
let jsondata=JSON.parse(result.target.result)
notification.error({message:'提示', description: jsondata.message})
}
return Promise.reject(response)
}
return response
}else{
return response.data
}
},error)
参考文档:
版权声明:本文为xiaoxiangzi520原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。