位置: 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)

  • win7不显示隐藏文件(win7不显示移动硬盘)(win7不显示隐藏的文件和文件夹)

    win7不显示隐藏文件(win7不显示移动硬盘)(win7不显示隐藏的文件和文件夹)

  • 找不到文件或目录(文件提示找不到文件所在位置)

    找不到文件或目录(文件提示找不到文件所在位置)

  • 电话权限允许后会怎样(电话权限允许后再次关闭会怎么样)

    电话权限允许后会怎样(电话权限允许后再次关闭会怎么样)

  • 手机能注销手机卡吗(手机注销手机号里面的话费怎么办)

    手机能注销手机卡吗(手机注销手机号里面的话费怎么办)

  • 键盘各种轴的区别作用(键盘各种轴的区别哪个适合玩游戏?)

    键盘各种轴的区别作用(键盘各种轴的区别哪个适合玩游戏?)

  • 群主退出了会解散群吗(群主退出了会解散群聊吗)

    群主退出了会解散群吗(群主退出了会解散群聊吗)

  • 设置主页为使用默认页(设置主页为使用默认值怎么设置)

    设置主页为使用默认页(设置主页为使用默认值怎么设置)

  • mq8d2ch/a是什么机型(mq8d2ch/a是什么手机)

    mq8d2ch/a是什么机型(mq8d2ch/a是什么手机)

  • 在手机上怎样下载歌曲到内存卡里面(在手机上怎样下载歌曲到优盘)

    在手机上怎样下载歌曲到内存卡里面(在手机上怎样下载歌曲到优盘)

  • ntfs.sys损坏无法开机(ntfs.sys损坏无法开机win10)

    ntfs.sys损坏无法开机(ntfs.sys损坏无法开机win10)

  • 苹果11辅助圆球怎么设置(苹果11辅助圆球怎么设置截屏)

    苹果11辅助圆球怎么设置(苹果11辅助圆球怎么设置截屏)

  • ipadmini2和mini4的区别(ipadmini2和mini 4有啥区别)

    ipadmini2和mini4的区别(ipadmini2和mini 4有啥区别)

  • 苹果手机有测量尺寸的工具吗(苹果手机有测量血压功能吗)

    苹果手机有测量尺寸的工具吗(苹果手机有测量血压功能吗)

  • 怎么申请多个拼多多号(如何申请多个拼多多)

    怎么申请多个拼多多号(如何申请多个拼多多)

  • nova6颜色有哪些(nova6的颜色有哪些)

    nova6颜色有哪些(nova6的颜色有哪些)

  • ps需要独立显卡吗(电脑主机和显示器怎么安装)

    ps需要独立显卡吗(电脑主机和显示器怎么安装)

  • 手机怎么拍流星(手机怎么拍流星雨的照片)

    手机怎么拍流星(手机怎么拍流星雨的照片)

  • Watch GT2蓝牙版能听歌吗(gt2手表蓝牙在哪)

    Watch GT2蓝牙版能听歌吗(gt2手表蓝牙在哪)

  • 小米手机镜像功能在哪(小米手机镜像功能怎么找不到了)

    小米手机镜像功能在哪(小米手机镜像功能怎么找不到了)

  • 拼多多免拼卡怎么送人(拼多多免拼卡怎么获得)

    拼多多免拼卡怎么送人(拼多多免拼卡怎么获得)

  • 小红书停止运行怎么回事(小红书自己暂停播放怎么办)

    小红书停止运行怎么回事(小红书自己暂停播放怎么办)

  • iphone信任在哪里打开(iphone信任在哪里设置有什么用)

    iphone信任在哪里打开(iphone信任在哪里设置有什么用)

  • 抖音直播间怎么开音乐(抖音直播间怎么录屏幕视频)

    抖音直播间怎么开音乐(抖音直播间怎么录屏幕视频)

  • 手机一打电话就变成2g怎么回事(手机打电话就没网络是怎么回事)

    手机一打电话就变成2g怎么回事(手机打电话就没网络是怎么回事)

  • 4g变h怎么恢复正常(4g变h怎么恢复正常vivo)

    4g变h怎么恢复正常(4g变h怎么恢复正常vivo)

  • 相机热靴盖有必要盖么(相机热靴盖怎么取下来)

    相机热靴盖有必要盖么(相机热靴盖怎么取下来)

  • thinkpad电脑安装win10系统图文教程(联想thinkpad安装win7方法)

    thinkpad电脑安装win10系统图文教程(联想thinkpad安装win7方法)

  • 织梦dedecms自定义表单添加地区联动显示数字解决方法(织梦怎么改网站主页)

    织梦dedecms自定义表单添加地区联动显示数字解决方法(织梦怎么改网站主页)

  • 增值税税率改变后原项目的新增单价按哪个税率
  • 增值税专用发票使用规定 最新
  • 个人购买二手房贷款能贷多少
  • 小规模纳税人劳务费税率1%
  • 甲企业持有乙企业的非上市股票2000股
  • 企业买车算固定收入吗
  • 收到项目投资款账务处理
  • 红字信息表状态是B900071
  • 小规模纳税人小微企业免税销售额
  • 开发区代管
  • 航空运单可以作为提货凭证吗
  • 房企视同买断销售的所得税处理
  • 支票结算业务流程
  • 如何设置处理器个数如何设置显示器超频
  • 电子银行承兑汇票已承兑已锁定
  • 交易性金融资产的入账价值
  • 转让财产怎么交税
  • 金融服务利息
  • 住宿发票的税率0
  • 地税迁移期间能开发票吗
  • 砂石建筑材料验收规范
  • 公司拖欠工资还要继续工作吗?
  • 公司购买的冰箱供员工使用
  • 公司费用种类
  • 存货的损失计入什么科目
  • 可转换公司债券转股会计分录
  • 物业税额
  • 承兑汇票属于现金支付吗
  • 土地开垦费怎么征收
  • linux系统配置ip地址命令
  • 基金收益率
  • 公司个人股份转让需要缴税吗
  • 冲暂估成本会计分录怎么做
  • 其他综合收益是什么意思
  • 支付拍卖成交金额是多少
  • php mysql pdo
  • 代收代付的垃圾清运费没发票能入账吗
  • services.exe是什么服务
  • 费用超额怎么写申请
  • 项目部可以直接给工人结账吗
  • 喝咖啡的好处和坏处 女性
  • 跨年的发票作废重新开具需要入账
  • 福利部门领用原材料进项税额可以抵扣吗
  • 工业企业成本怎么结转
  • php微信公众号获取带参二维码
  • php生成zip压缩包
  • 什么条件可以免于起诉
  • 预收账款开票了怎么做账报税
  • python如何在一个文件中运行另一个文件
  • Android ViewPager2 + Fragment 联动
  • 实收资本属于限定性净资产吗
  • 个体户一年能开多少票不用交税
  • 施工企业老板名字
  • 股票分红是怎么扣税的
  • 营改增后增值税增加了什么征收范围
  • 贷款公司收取服务费跑路
  • 购买股票如何操作
  • 坏账准备的会计分录例题
  • 银行有哪几种转型方式
  • 成本费用利润率一般在什么范围
  • sql实用教程
  • sqlserver数据库恢复
  • mysql解压版怎么使用
  • mysql 元组
  • win10音量调节不显示
  • vmware8.0.4
  • windows字体不显示
  • windows7 ie
  • centos uuid
  • 华硕和联想笔记本电脑哪个好点
  • windows 8.1有哪些版本
  • 动态添加echarts
  • jQuery Validate 数组 全部验证问题
  • nodejs爬取数据
  • unity 更新
  • python pygame模块详解
  • 出售废铁的会计分录
  • 临沭公交车多久一班
  • 普宁市离揭阳市有多远
  • 耕地占用税是土地增值税扣除项目吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设