vue blob文件下载文件时后端抛出异常,并返回json错误信息,前端捕获信息并提示
后端返回的json数据为:{"success":false, "message":"操作失败,没有需要下载的文件","code":500}前端捕获到的Blob数据:解决方法:服务响应的统一拦截器中判断blob类型,输出异常信息:import Vue from 'vue'import axios from 'axios'const service=axios.create({baseUrl:xxxx
·
后端返回的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)
参考文档:
更多推荐
已为社区贡献10条内容
所有评论(0)