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

  • python变量命名规则(python变量命名规范官方文档)

    python变量命名规则(python变量命名规范官方文档)

  • iqooneo5活力版电池容量(iqooneo5活力版电池损耗怎么看)

    iqooneo5活力版电池容量(iqooneo5活力版电池损耗怎么看)

  • 在WPS表格中,想要复制填充单元格怎么操作(在wps表格中想要快速格式化整个表格可以用什么功能)

    在WPS表格中,想要复制填充单元格怎么操作(在wps表格中想要快速格式化整个表格可以用什么功能)

  • 电脑微信文件夹储存在什么位置(电脑微信文件夹filestorage装的什么)

    电脑微信文件夹储存在什么位置(电脑微信文件夹filestorage装的什么)

  • 微信公众号的创建方法是什么(微信公众号的创作平台选什么)

    微信公众号的创建方法是什么(微信公众号的创作平台选什么)

  • 苹果手机怎么设置中文字体(苹果手机怎么设置手写)

    苹果手机怎么设置中文字体(苹果手机怎么设置手写)

  • 虎牙年度票有什么用(虎牙年度是什么意思?)

    虎牙年度票有什么用(虎牙年度是什么意思?)

  • cpu最高可以多少度(cpu最高超到多少)

    cpu最高可以多少度(cpu最高超到多少)

  • 苹果x怎样设置黑名单打不进电话来(苹果x怎样设置面容解锁)

    苹果x怎样设置黑名单打不进电话来(苹果x怎样设置面容解锁)

  • 电脑左下角开始键不见了(电脑左下角开始菜单点了没反应)

    电脑左下角开始键不见了(电脑左下角开始菜单点了没反应)

  • 不用原装充电器的危害(不用原装充电器会充坏手机吗)

    不用原装充电器的危害(不用原装充电器会充坏手机吗)

  • 转接器不支持配件的解决办法(转接器不适配怎么办)

    转接器不支持配件的解决办法(转接器不适配怎么办)

  • 为什么发信息尚未送达(为什么发的信息)

    为什么发信息尚未送达(为什么发的信息)

  • wifi设置静态什么意思(wifi设置静态有什么用)

    wifi设置静态什么意思(wifi设置静态有什么用)

  • 电脑1080p是什么意思(电脑1080i)

    电脑1080p是什么意思(电脑1080i)

  • 什么是typec接头(typec接口又叫什么)

    什么是typec接头(typec接口又叫什么)

  • word 表格怎么跨页(word表格怎么跨页断行)

    word 表格怎么跨页(word表格怎么跨页断行)

  • 苹果无线耳机丢了怎么找回(苹果无线耳机丢了还能找回来吗)

    苹果无线耳机丢了怎么找回(苹果无线耳机丢了还能找回来吗)

  • 显示器节电模式怎么取消(显示器节电模式黑屏怎么解除)

    显示器节电模式怎么取消(显示器节电模式黑屏怎么解除)

  • 闪电盒子怎么提现到微信里(闪电盒子怎么提现)

    闪电盒子怎么提现到微信里(闪电盒子怎么提现)

  • 删除所有键值对(如何删除键值对)

    删除所有键值对(如何删除键值对)

  • 鸿蒙系统怎么去除盾牌图标?鸿蒙系统去除盾牌图标教程(鸿蒙系统怎么去掉负一屏)

    鸿蒙系统怎么去除盾牌图标?鸿蒙系统去除盾牌图标教程(鸿蒙系统怎么去掉负一屏)

  • dos2unix命令  将DOS格式的文本文件转换成UNIX格式(dos命令怎么转到d盘)

    dos2unix命令 将DOS格式的文本文件转换成UNIX格式(dos命令怎么转到d盘)

  • mkfs.ext2命令  建立ext2文件系统(命令行mkdir创建文件夹)

    mkfs.ext2命令 建立ext2文件系统(命令行mkdir创建文件夹)

  • 实收资本印花税是营业账簿吗
  • 建筑业老项目如何界定
  • 小规模未达起征点免税分录
  • 长期待摊一般摊几年
  • 收入纳税明细里的收入是税前还是税后
  • 商业银行税前收益率
  • 全额税前扣除的公益捐赠有几类
  • 小规模纳税人季报还是月报?
  • 应付税费包括
  • 工程未完工但已开票
  • 公交补贴收入账务处理怎么做?
  • 物料损耗会计分录
  • 生产过程中产品的质量保证体系
  • 注销时公司账上没有钱付股东投资款
  • 小规模商业企业税率
  • 公司为员工买保险好还是个体户为员工买保险好
  • 相关规定个人运输发票税率是多少
  • 只开增值税普通发票,需要申报税务吗
  • 企业交的社保是什么
  • 进项发票账务处理
  • 研发支出辅助账2021版
  • 房地产企业开发成本计入存货
  • 营改增的作用
  • 工业企业该怎样建账?
  • 预收款结转收入怎么算
  • 长期待摊费用以后怎么摊销
  • 资产总额小于所有者权益合计
  • 分支机构能否核定企业所得税
  • 消费税的纳税义务人
  • 销售收入净额与销售收入的区别
  • PHP+jQuery翻板抽奖功能实现
  • 什么是原始凭证?审核原始凭证主要审查哪些内容?
  • 增值税专用发票上注明的价款含税吗
  • 年终奖税务筹划合法吗
  • 企业备用金管理制度规定
  • linux命令大全详解
  • 物业公司收的物业费用干什么了
  • 上级拨付的债券会计分录
  • php计算时间
  • 本期收入及免税收入
  • 销售退货和折让是收入吗?吗?
  • 关联公司开发票
  • 小规模免征增值税2023
  • MySQL主从数据库搭建
  • 开具利息收入发票需不需要有经营范围
  • 个别计价法和先进先出法的相同点
  • 劳务报酬需要申报个税吗
  • 二手车置换新车需要什么手续
  • 什么是年化收益和绝对利率
  • 服务业小规模纳税人全套做账
  • 暂估商品入库 后收到发票怎么做分录
  • 主营业务成本计入成本类账户吗
  • 主营业务成本账户属于什么账户
  • 增值税减免附加税用计提吗
  • 外资企业股权转让给内资企业流程
  • 品牌代理费计入什么科目
  • 企业间借贷是否合法2018
  • 本年利润每个月有余额吗
  • windows7的内存基本要求
  • win7开机出现标志后就重启
  • win10预览版和正式版
  • micc是什么意思中文
  • 无法打开opencv2
  • chkdsk命令有什么用
  • 宏基win8改win7
  • unityz
  • extjs grid设置某列背景颜色和字体颜色的实现方法
  • jQuery.trim() 函数及trim()用法详解
  • linux 映射 fn键
  • js实现倒计时60s
  • unityapi解析
  • javascript 基础篇2 数据类型,语句,函数
  • JavaScript toFixed() 方法
  • JQuery解析XML数据的几个简单实例
  • 棚改房办房产证用不用交费
  • 苏州税务局发票查询系统
  • 怎么查询小米手机位置
  • 山东税务自然人注册怎么回事
  • 深圳布吉下水径旧改
  • 广东省地方税务局发票在线应用系统
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设