Axios封装接口为Blob时后端返回JSON的判断
假如后端在请求头中包含了code字段,可以在res.headers中找到
js
downnloadAIP({}).then((res) => {
if ('code' in res.headers && res.headers.code == '0') {
let fileName = ''
let name = '文件名字'
fileName = name + '.' + '文件类型后缀'
let blob = new Blob([res.data], {
type: 'application/vnd.ms-excel;charset=utf-8'
})
let downloadElement = document.createElement('a')
let href = window.URL.createObjectURL(blob) //创建下载的链接
downloadElement.href = href
downloadElement.download = fileName //下载后文件名
document.body.appendChild(downloadElement)
downloadElement.click() //点击下载
document.body.removeChild(downloadElement) //下载完成移除元素
window.URL.revokeObjectURL(href) //释放掉blob对象
} else {
// 其他操作...
}
})
downnloadAIP({}).then((res) => {
if ('code' in res.headers && res.headers.code == '0') {
let fileName = ''
let name = '文件名字'
fileName = name + '.' + '文件类型后缀'
let blob = new Blob([res.data], {
type: 'application/vnd.ms-excel;charset=utf-8'
})
let downloadElement = document.createElement('a')
let href = window.URL.createObjectURL(blob) //创建下载的链接
downloadElement.href = href
downloadElement.download = fileName //下载后文件名
document.body.appendChild(downloadElement)
downloadElement.click() //点击下载
document.body.removeChild(downloadElement) //下载完成移除元素
window.URL.revokeObjectURL(href) //释放掉blob对象
} else {
// 其他操作...
}
})
位于请求头中的信息前端解码
使用decodeURIComponent()方法
js
let message = decodeURIComponent(res.headers.message)
let message = decodeURIComponent(res.headers.message)