位置: IT常识 - 正文

axios请求设置responseType为‘blob‘或‘arraybuffer‘下载时,正确处理返回值(axios请求设置超时时间)

编辑:rootadmin
axios请求设置responseType为‘blob‘或‘arraybuffer‘下载时,正确处理返回值

推荐整理分享axios请求设置responseType为‘blob‘或‘arraybuffer‘下载时,正确处理返回值(axios请求设置超时时间),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:axios请求配置,axios请求设置超时时间,axios请求设置cookie,axios请求设置cookie,axios请求设置cookie,axios设置请求超时,axios response,axios请求设置超时时间,内容如对您有帮助,希望把文章链接给更多的朋友!

问题:调用后台图片接口,后台返回二进制流图片数据格式。前端接收到流后处理数据显示在img标签。

解决:

1、设置axios接收参数格式为"arraybuffer":

responseType: 'arraybuffer'

2、转换为base64格式图片数据在img标签显示:

return 'data:image/png;base64,' + btoa( new Uint8Array(res.data).reduce((data, byte) => data + String.fromCharCode(byte), '') );

返回的string直接放在img标签src可直接显示

二、设置axios接收参数格式为"blob":axios.post( ExportUrl, Params, { responseType: 'blob' }) .then(function(response) { this.url = window.URL.createObjectURL(new Blob([response.data])); });三、通过a标签下载文件const url = '下载的url链接';const link = document.createElement('a');link.href = url;link.target = '_blank';link.setAttribute('download', 'Excel名字.xlsx');document.body.appendChild(link);link.click();axios请求设置responseType为‘blob‘或‘arraybuffer‘下载时,正确处理返回值(axios请求设置超时时间)

responseType值的类型

值数据类型‘’DOMString(默认类型)arraybufferArrayBuffer对象blobBlob对象documentDocumnet对象jsonJavaScript object, parsed from a JSON string returned by the servertextDOMString

实例 返回值不同情况的处理方式,举例如下:

①、请求设置为 responseType: ‘arraybuffer’, 请求成功时,后端返回文件流,正常导出文件; 请求失败时,后端返回json对象,如:{“Status”:“false”,“StatusCode”:“500”,“Result”:“操作失败”},也被转成了arraybuffer

此时请求成功和失败返回的http状态码都是200

解决方案:将已转为arraybuffer类型的数据转回Json对象,然后进行判断

代码如下

async downloadFile (file) { let res = await this.$axios.post(this.API.order.tradeImpExcle, { responseType: "arraybuffer" }); if (!res) return; try { //如果JSON.parse(enc.decode(new Uint8Array(res.data)))不报错,说明后台返回的是json对象,则弹框提示 //如果JSON.parse(enc.decode(new Uint8Array(res.data)))报错,说明返回的是文件流,进入catch,下载文件 let enc = new TextDecoder('utf-8') res = JSON.parse(enc.decode(new Uint8Array(res.data))) //转化成json对象 if (res.Status == "true") { this.refresh() this.$message.success(res.Msg) } else { this.$message.error(res.Result) } } catch (err) { const content = res.data; const blob = new Blob([content]); let url = window.URL.createObjectURL(blob); let link = document.createElement("a"); link.style.display = "none"; link.href = url; link.setAttribute( "download", res.headers["content-disposition"].split("=")[1] ); document.body.appendChild(link); link.click(); } }

②、请求设置为 responseType: ‘blob’,

解决方案:将已转为blob类型的数据转回Json对象,然后进行判断

代码如下

async downloadFile (file) { let formData = new FormData(); formData.append("allTradesExcelFile", file); let res = await this.$axios.post(this.API.order.tradeImpExcle, formData, { responseType: "blob" }); if (!res) return; let r = new FileReader() let _this = this r.onload = function () { try { // 如果JSON.parse(this.result)不报错,说明this.result是json对象,则弹框提示 // 如果JSON.parse(this.result)报错,说明返回的是文件流,进入catch,下载文件 res = JSON.parse(this.result) if (res.Status == "true") { _this.refresh() _this.$message.success(res.Msg) } else { _this.$message.error(res.Result) } } catch (err) { const content = res.data; const blob = new Blob([content]); let url = window.URL.createObjectURL(blob); let link = document.createElement("a"); link.style.display = "none"; link.href = url; link.setAttribute( "download", res.headers["content-disposition"].split("=")[1] ); document.body.appendChild(link); link.click(); } } r.readAsText(res.data) // FileReader的API }
本文链接地址:https://www.jiuchutong.com/zhishi/295268.html 转载请保留说明!

上一篇:HTML---列表(html列表去掉点)

下一篇:基于Springboot社区疫情防控管理系统 毕业设计-附源码164621(基于springboot的oa)

  • 联通不可退订业务怎么联系客服退订(联通不可退订业务如何取消)

    联通不可退订业务怎么联系客服退订(联通不可退订业务如何取消)

  • realme gt neo2屏幕尺寸是多少(realme GT Neo2屏幕亮度是多少)

    realme gt neo2屏幕尺寸是多少(realme GT Neo2屏幕亮度是多少)

  • 为什么上传到抖音的视频不清晰(为什么上传到抖音的作品卡帧)

    为什么上传到抖音的视频不清晰(为什么上传到抖音的作品卡帧)

  • 拼多多退回件是什么意思(拼多多退回件是什么快递)

    拼多多退回件是什么意思(拼多多退回件是什么快递)

  • 中兴路由器初始密码(中兴路由器初始wifi密码)

    中兴路由器初始密码(中兴路由器初始wifi密码)

  • 快手怎么横屏观看(快手怎么横屏观看别人的作品)

    快手怎么横屏观看(快手怎么横屏观看别人的作品)

  • p40屏幕是什么品牌(华为p40屏幕是什么材质)

    p40屏幕是什么品牌(华为p40屏幕是什么材质)

  • qq风险提示几天消除(qq风险提醒怎么解除)

    qq风险提示几天消除(qq风险提醒怎么解除)

  • 手机已用空间指什么(手机已用空间指的是什么方面)

    手机已用空间指什么(手机已用空间指的是什么方面)

  • 华为手表防水性能(华为手表防水性如何)

    华为手表防水性能(华为手表防水性如何)

  • 苹果11充电好慢(苹果11充电好慢啊)

    苹果11充电好慢(苹果11充电好慢啊)

  • 苹果手机sos紧急联络按了会发生什么	(苹果手机sos紧急求助怎么设置联系人)

    苹果手机sos紧急联络按了会发生什么 (苹果手机sos紧急求助怎么设置联系人)

  • wps为什么电脑上和手机上显示的不一样(wps为什么电脑上的图片到手机上就跟上一页合并了)

    wps为什么电脑上和手机上显示的不一样(wps为什么电脑上的图片到手机上就跟上一页合并了)

  • 手机4g信号旁边hd怎么取消(手机4g信号旁边hd怎么关闭)

    手机4g信号旁边hd怎么取消(手机4g信号旁边hd怎么关闭)

  • 文件管理文档可以删吗(文件管理的文档)

    文件管理文档可以删吗(文件管理的文档)

  • 一个人坐飞机能带几个充电宝(一个人坐飞机能带几瓶酒)

    一个人坐飞机能带几个充电宝(一个人坐飞机能带几瓶酒)

  • 苹果六plus怎么录屏(苹果六plus怎么开机)

    苹果六plus怎么录屏(苹果六plus怎么开机)

  • 怎么拉黑快手关注我的人(快手怎么拉黑关注你的人,不让他看你的作品)

    怎么拉黑快手关注我的人(快手怎么拉黑关注你的人,不让他看你的作品)

  • 苹果怎么查下载过的东西(苹果怎么查下载软件的记录)

    苹果怎么查下载过的东西(苹果怎么查下载软件的记录)

  • 存储速度最快的是(存储速度最快的是哪个存储器)

    存储速度最快的是(存储速度最快的是哪个存储器)

  • portal00a什么型号(华为型号potal00a啥手机)

    portal00a什么型号(华为型号potal00a啥手机)

  • 小米手机放大镜怎么设置(小米手机放大镜怎么关闭)

    小米手机放大镜怎么设置(小米手机放大镜怎么关闭)

  • pe盘是啥(pe盘是干嘛的)

    pe盘是啥(pe盘是干嘛的)

  • 一文看懂预训练和自训练模型(预训练的目的)

    一文看懂预训练和自训练模型(预训练的目的)

  • [Python]解密pyc文件(python解密加密文件)

    [Python]解密pyc文件(python解密加密文件)

  • 流量结转是什么意思
  • 进项税大于销项税结转分录
  • 业务招待费可以进项抵扣吗
  • 企业所得税如何申报操作
  • 违约金的专票能抵扣吗
  • 促销费用计入销售费用哪个科目
  • 一般纳税人收到普票可以抵扣吗
  • 公司注销单位社保欠费怎么处理
  • 消费税计税依据含不含消费税
  • 出口退税的发票怎么做账
  • 怎么不用关税
  • 陈列费税率多少
  • 总公司的哪些费用要交税
  • 一般纳税人汽车修理费可以抵扣吗
  • 固定资产报废税费怎么处理
  • 人工费增值税的税率是多少?
  • 非住宅过户税费标准最新
  • 最新最全的消费软件
  • 特殊性税务处理弥补亏损限额
  • 外汇实收资本如何做账
  • windows11快捷操作
  • 工会经费列支比例
  • 长期贷款利息怎样计算
  • 个人销售自己使用过的物品免征增值税
  • 华为鸿蒙系统看PDF文件会不多次存
  • PHP:mb_ereg_replace_callback()的用法_mbstring函数
  • php网页爬虫
  • 库存现金意思
  • encore是什么软件
  • 图书发行流程
  • 长期挂账的其他应付款转营业外收入情况说明
  • 企业清算所得税政策
  • flex布局实战
  • custom用法
  • web2.0核心
  • php无限级分销
  • wordpress all in one
  • 快递代收费用是多少
  • 所有者权益类的借贷方向是什么
  • 青苗补偿费归谁所有
  • php门户cms
  • mongodb4.4.2安装教程
  • 小规模申请一般纳税人怎么申请
  • 贷款呆账准备金
  • 如何在税控盘上变更一般纳税人
  • 业务招待费计入其他业务成本
  • 奖金如何做账会计分录
  • 公司优秀党员奖章
  • 团体意外险投保
  • 短期借款的核算
  • 房屋提折旧几年
  • 机票的退票费可以开具发票吗
  • 盈余公积提取多了
  • 小规模纳税人增值税专用发票税率
  • 未摊销的费用怎样处理
  • 劳务派遣公司账务处理
  • 税务局退还的三险是什么
  • 银行汇票可用于异地结算吗
  • mysql导入数据语句
  • sqlserver通用的删除服务器上的所有相同后缀的临时表
  • mysql中索引有什么用
  • sql中索引怎么使用
  • win7打开浏览器很慢
  • 在Vista、Windows7下玩英雄无敌3绿色版
  • apple watch手表怎么看型号
  • win8系统怎么设置
  • Win10技巧:如何开启隐藏的锁屏时间设置项
  • linux怎么开启root权限
  • win10如何快速打开设置
  • Unity3D ugui事件监听机制
  • 批处理应用实例
  • perl数组元素个数
  • js如何获取当前页面的url
  • javascript中继承
  • spring mvc jsp
  • 消费税申报详细流程图
  • 蜀山区税务局工资待遇
  • 国家税务总局简易征收最新文件
  • 地税局跟税务局有什么区别
  • 销售土地使用权的税率
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设