基于axios 的responseType类型的设置方法


Posted in Javascript onOctober 29, 2019

responseType值的类型可为如下

基于axios 的responseType类型的设置方法

axios请求下载导出一个文件,请求成功时返回的是一个流形式的文件,需要设置responseType: 'arraybuffer',但是请求失败的需要返回的是json数据,

所以需要把arraybuffer转成Json对象。

例:

请求设置了responseType: 'arraybuffer',

请求成功时,下载文件,

请求失败时,后端返回json对象,如:{"msg":"系统异常","code":1,"success":false},也被转成了arraybuffer

我的解决方案是,失败时,将数据arraybuffer转成Json对象就好了。

举个例:

api.downloadFile(params).then(res => {    
  if (res.status === 200 && res.data) {     
  
var disposition = res.headers['content-disposition']    
  

var fileName = decodeURI(disposition.substring(disposition.indexOf('filename=') + 9, disposition.length))<br>


let blob = new Blob([res.data], { type: 'application/pdf' }) // 假设文件为pdf
     let link = document.createElement('a')
     link.href = window.URL.createObjectURL(blob)
     link.download = fileName
     link.click()
     link.remove()
   } else {      // 其它情况
   }
  }).catch(err => {     <br>

var enc = new TextDecoder('utf-8')
    var res = JSON.parse(enc.decode(new Uint8Array(err.data))) //转化成json对象
    console.log(res)
  }
)

以上这篇基于axios 的responseType类型的设置方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript中Array 对象相关的几个方法
Dec 22 Javascript
图片连续滚动代码[兼容IE/firefox]
Jun 11 Javascript
jQuery常用操作方法及常用函数总结
Jun 19 Javascript
JS实现table表格数据排序功能(可支持动态数据+分页效果)
May 26 Javascript
javascript动画之模拟拖拽效果篇
Sep 26 Javascript
Boostrap实现的登录界面实例代码
Oct 09 Javascript
canvas实现刮刮卡效果
Mar 14 Javascript
微信小程序搜索组件wxSearch实例详解
Jun 08 Javascript
解决vue的 v-for 循环中图片加载路径问题
Sep 03 Javascript
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
Sep 04 Javascript
Vue 引入AMap高德地图的实现代码
Apr 29 Javascript
javascript设计模式 ? 迭代器模式原理与用法实例分析
Apr 17 Javascript
关于vue2强制刷新,解决页面不会重新渲染的问题
Oct 29 #Javascript
vue + elementUI实现省市县三级联动的方法示例
Oct 29 #Javascript
vue 强制组件重新渲染(重置)的两种方案
Oct 29 #Javascript
javascript实现简单打字游戏
Oct 29 #Javascript
简单使用webpack打包文件的实现
Oct 29 #Javascript
vue 解决异步数据更新问题
Oct 29 #Javascript
VUE实现强制渲染,强制更新
Oct 29 #Javascript
You might like
PHP类的使用 实例代码讲解
2009/12/28 PHP
PHP set_time_limit(0)长连接的实现分析
2010/03/02 PHP
php switch语句多个值匹配同一代码块应用示例
2014/07/29 PHP
PHP实现正则表达式分组捕获操作示例
2018/02/03 PHP
锋利的jQuery 要点归纳(二) jQuery中的DOM操作(下)
2010/03/23 Javascript
模拟select的代码
2011/10/19 Javascript
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
2013/07/08 Javascript
使用jQuery实现星级评分代码分享
2014/12/09 Javascript
jQuery之简单的表单验证实例
2016/07/07 Javascript
使用openSpeDiv方法实现Ecshop登录弹窗框效果
2017/03/13 Javascript
JS表格组件神器bootstrap table使用指南详解
2017/04/12 Javascript
ES6中javascript实现函数绑定及类的事件绑定功能详解
2017/11/08 Javascript
微信小程序如何获取用户信息
2018/01/26 Javascript
使用vue for时为什么要key【推荐】
2019/07/11 Javascript
js+canvas实现纸牌游戏
2020/03/16 Javascript
[03:01]完美盛典趣味短片 DOTA2年度最佳&拉胯英雄
2019/12/07 DOTA
[01:10]DOTA2英雄背景故事第四期之混沌法则混沌骑士
2020/07/16 DOTA
python命令行参数解析OptionParser类用法实例
2014/10/09 Python
Python迭代器和生成器介绍
2015/03/06 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
2017/12/19 Python
200 行python 代码实现 2048 游戏
2018/01/12 Python
Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析
2018/05/08 Python
python执行系统命令后获取返回值的几种方式集合
2018/05/12 Python
python实现梯度下降算法
2020/03/24 Python
Python3实现从排序数组中删除重复项算法分析
2019/04/03 Python
django-crontab 定时执行任务方法的实现
2019/09/06 Python
sklearn的predict_proba使用说明
2020/06/28 Python
利用python实现后端写网页(flask框架)
2021/02/28 Python
廉价连衣裙和婚纱礼服在线销售:Tbdress
2019/02/28 全球购物
Jacques Lemans德国:奥地利钟表品牌
2019/12/26 全球购物
日本最大的购物网站乐天市场国际版:Rakuten Global Market(支持中文)
2020/02/03 全球购物
财务管理专业毕业生求职信范文
2013/09/21 职场文书
材料采购员岗位职责
2013/12/17 职场文书
Django给表单添加honeypot验证增加安全性
2021/05/06 Python
如何理解Vue前后端数据交互与显示
2021/05/10 Vue.js