Skip to content

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)