axios 下载文件请求, responseType为blob时

2021-03-15  本文已影响0人  贞贞姐
image.png
download() {
      if (!this.form.fileType) {
        return this.$message.error('请选择文件类型')
      }
      if (!this.form.transDate) {
        return this.$message.error('请选择交易日期')
      }
      const params = {
        fileType: this.form.fileType,
        transDate: this.form.transDate.split('-').join('')
      }
      this.loading = true
      downloadbillCheckFile(params).then(result => {
        console.log(result)
        downloadFile(result, '对账文件', 'xlsx')
        this.loading = false
      }).catch(error => {
// axios 下载文件请求, responseType为blob时, 无法捕获后端抛出错误问题代码
        if (error.response.data.type === 'application/json') {
          const reader = new FileReader()
          reader.readAsText(error.response.data)
          reader.onload = e => {
            const { message } = JSON.parse(reader.result)
            this.$message.error(message)
          }
        }
        this.loading = false
      })
    }
  }
上一篇下一篇

猜你喜欢

热点阅读