responseType: ‘blob‘的请求,失败怎么获取失败信息

当响应类型为application/json时,代码尝试读取并解析JSON数据,如果解析失败则显示错误信息。否则,它将数据转换为JPEG图像并进行下载,动态创建并使用a标签实现文件下载功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 if (res?.type == "application/json") {
//导出失败
    const reader = new FileReader() as any
    let parseObj = null as any
    reader.readAsText(res, 'utf-8')
    reader.onload = await function () {
      parseObj = JSON.parse(reader.result)
      message.error(parseObj.msg || "操作失败")
    }
  } else {
//解析成功,开始导出
let blob = new Blob([res], {
      type: 'image/jpeg'  // 下载的文件类型格式(二进制流,不知道下载文件类型可以设置为这个), 具体请查看HTTP Content-type 对照表
    })
    let url = URL.createObjectURL(blob)
    let a = document.createElement('a')
    a.style.display = 'none'
    a.href = url
    a.setAttribute('download', 'img.jpg')   // 设置下载的文件名
    document.body.appendChild(a)
    a.click()
    document.body.removeChild(a)       //下载完成移除dom元素
    URL.revokeObjectURL(url)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值