坚持学习打卡

前端接收 type: “application/octet-st

2023-09-03  本文已影响0人  Moment929

第一步在拦截器中设置:

service.interceptors.response.use(
  response => {
    const headers = response.headers
    if (headers['content-type'] === 'application/octet-stream;charset=utf-8') {
      return response.data
    }
  ...其他情况
  }
)

第二步在axios 请求时设置:

export function exportAudit(query) {
  return request({
    url: 'xxxx',
    method: 'get',
    responseType: 'blob',
    params: query
  })
}

第三步,请求接口返回值时设置:

handleExport() {
      exportAudit(this.query).then(response => {
        console.log(response)
        const blob = new Blob([response.data])
        const fileName = '屏蔽字导出.xlsx'
        if ('download' in document.createElement('a')) { // 非IE下载
          const elink = document.createElement('a')//创建一个a标签通过a标签的点击事件区下载文件
          elink.download = fileName
          elink.style.display = 'none'
          elink.href = URL.createObjectURL(blob)//使用blob创建一个指向类型数组的URL
          document.body.appendChild(elink)
          elink.click()
          URL.revokeObjectURL(elink.href) // 释放URL 对象
          document.body.removeChild(elink)
        } else { // IE10+下载
          navigator.msSaveBlob(blob, fileName)
        }
      })
    }

这样就导出文档流内容了

上一篇下一篇

猜你喜欢

热点阅读