基于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 Math对象
Aug 13 Javascript
Jquery ajaxsubmit上传图片实现代码
Nov 04 Javascript
node.js中的fs.readlinkSync方法使用说明
Dec 17 Javascript
深入解析JavaScript框架Backbone.js中的事件机制
Feb 14 Javascript
微信小程序 摇一摇抽奖简单实例实现代码
Jan 09 Javascript
JavaScript简单验证表单空值及邮箱格式的方法
Jan 20 Javascript
Bootstrap 3 按钮标签实例代码
Feb 21 Javascript
微信小程序多列选择器range-key使用详解
Mar 30 Javascript
vue2.0在没有dev-server.js下的本地数据配置方法
Feb 23 Javascript
详解如何在你的Vue项目配置vux
Jun 04 Javascript
JS判断用户用的哪个浏览器实例详解
Oct 09 Javascript
javascript使用正则表达式实现注册登入校验
Sep 23 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
动态新闻发布的实现及其技巧
2006/10/09 PHP
Web程序工作原理详解
2014/12/25 PHP
两种php去除二维数组的重复项方法
2015/11/04 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
2015/12/21 PHP
thinkphp框架page类与bootstrap分页(美化)
2017/06/25 PHP
PHP解密支付宝小程序的加密数据、手机号的示例代码
2021/02/26 PHP
利用jquery的获取JS文件中的字符串内容
2012/02/14 Javascript
原生js实现半透明遮罩层效果具体代码
2013/06/06 Javascript
利用JS判断用户是否上网(连接网络)
2013/12/23 Javascript
javaScript中的this示例学习详解及工作原理
2014/01/13 Javascript
setTimeout自动触发一个js的方法
2014/01/15 Javascript
javascript将数字转换整数金额大写的方法
2015/01/27 Javascript
详解javascript new的运行机制
2016/01/26 Javascript
酷! 不同风格页面布局幻灯片特效js实现
2021/02/19 Javascript
Javascript vue.js表格分页,ajax异步加载数据
2016/10/24 Javascript
node.js中使用Export和Import的方法
2017/09/18 Javascript
React根据宽度自适应高度的示例代码
2017/10/11 Javascript
详解Vue内部怎样处理props选项的多种写法
2018/11/06 Javascript
python绘制直方图和密度图的实例
2019/07/08 Python
使用python分析统计自己微信朋友的信息
2019/07/19 Python
使用 Python 遍历目录树的方法
2020/02/29 Python
pyqt5中动画的使用详解
2020/04/01 Python
使用tensorflow框架在Colab上跑通猫狗识别代码
2020/04/26 Python
美国在线宠物商店:Chewy
2019/01/12 全球购物
武汉高蓝德国际.net机试
2016/06/24 面试题
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
2013/10/30 面试题
连锁酒店店长职责范本
2014/02/13 职场文书
团队拓展活动方案
2014/08/28 职场文书
医院科室评语
2015/01/04 职场文书
放假通知
2015/04/14 职场文书
摘录式读书笔记
2015/07/01 职场文书
领导新年致辞2016
2015/07/29 职场文书
2016年9月份红领巾广播稿
2015/12/21 职场文书
幼儿园教学反思范文
2016/03/02 职场文书
python not运算符的实例用法
2021/06/30 Python
Python编写nmap扫描工具
2021/07/21 Python