1.后端返回的json数据结构为:
{"message":"下载失败,下载文件不存在,请联系管理员处理!","code":500}
2.vue 请求后台接口返回的 Blob数据
3.问题出现的原因是,正常其他数据列表接口,返回的 请求头部 直接为 json ,有附件的 则为 blob,所以得特殊处理下
4.解决方案,(注意:就是它: response.config.responseType=='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.datalet 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)