api:
export const exportxxx= params => {
return request({
url: 'xxx',
method: 'get',
responseType: 'blob',//将接口返回的文件流解析
params
})
}
在调接口的方法中可以这样写
let res = await exportxxx(参数)
//判断当前返回数据是否是JSon 返回文件流则不进行解析
if (res.data.type === 'application/json') {
const reader = new FileReader()
reader.readAsText(res.data, 'utf-8')
reader.onload = () => {
res.data = JSON.parse(reader.result) //这里转json格式
//必须要用箭头函数,否则this.$Msg会报错
this.$Msg(res.data.message, 'error')
}
}
在response拦截器中这样写:
if (response.request.responseType === 'blob') {
const reader = new FileReader()
reader.readAsText(response.data, 'utf-8')
reader.onload = function() {
response.data = JSON.parse(reader.result)
}
}
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点