(vue)前端区分接口返回两种格式,一种Blob二进制字节流,一种常规JSON,且将blob响应转为json

(vue)前端区分接口返回两种格式,一种Blob二进制字节流,一种常规JSON,且将blob响应转为json


需求:导出功能接口返回两种格式,二进制直接下载,json需弹窗提示

  • 格式1:
    在这里插入图片描述

  • 格式2:
    在这里插入图片描述

在这里插入图片描述


思路:1.先区分是哪种格式 2.将需要提示的数据转为json


实现:

// 将blob转为json(重点2)
async blobToJson(blob) {
  const text = await blob.text()
  console.log(text) // 第118行
  return JSON.parse(text)
},
// 导出
exportHandle() { 
  exportVariance(this.formData).then(async(res) => {
    if (res.type.includes('application/json')) {(重点1const jsonData = await this.blobToJson(res) 
      console.log(jsonData) // 第126行
      this.$message.warning(jsonData.message)
    } else {
      const data = res
      const url = window.URL.createObjectURL(new Blob([data], { type: 'text/csv;charset=utf-8;' }))
      const link = document.createElement('a')
      link.href = url
      link.setAttribute('download', 'export.csv')
      link.click() 
    } 
  }).catch((res) => {
    console.log(res) 
  })
},

打印:
在这里插入图片描述


效果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值