基于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 相关文章推荐
jQuery源码中的chunker 正则过滤符分析
Jul 31 Javascript
用jQuery获取IE9下拉框默认值问题探讨
Jul 22 Javascript
解决JQeury显示内容没有边距内容紧挨着浏览器边线
Dec 20 Javascript
对js关键字命名的疑问介绍
Apr 25 Javascript
javascript实现简单的贪吃蛇游戏
Mar 31 Javascript
延时加载JavaScript代码提高速度
Dec 27 Javascript
JavaScript事件学习小结(五)js中事件类型之鼠标事件
Jun 09 Javascript
jQuery表单验证插件解析(推荐)
Jul 21 Javascript
select下拉框插件jquery.editable-select详解
Jan 22 Javascript
详解AngularJs HTTP响应拦截器实现登陆、权限校验
Apr 11 Javascript
如何选择适合你的JavaScript框架
Nov 20 Javascript
js 函数性能比较方法
Aug 24 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/05/20 PHP
PHP闭包(Closure)使用详解
2013/05/02 PHP
Ajax+PHP快速上手及简单应用说明
2013/07/24 PHP
windows系统php环境安装swoole具体步骤
2021/03/04 PHP
避免 showModalDialog 弹出新窗体的原因分析
2010/05/31 Javascript
JS正则中的RegExp对象对象
2012/11/07 Javascript
Extjs4.0设置Ext.data.Store传参的请求方式(默认为GET)
2013/04/02 Javascript
JS获得QQ号码的昵称,头像,生日的简单实例
2013/12/04 Javascript
javascript中parentNode,childNodes,children的应用详解
2013/12/17 Javascript
js select option对象小结
2013/12/20 Javascript
使用Node.js实现一个简单的FastCGI服务器实例
2014/06/09 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
2015/11/30 Javascript
js简单判断flash是否加载完成的方法
2016/06/21 Javascript
vue 地区选择器v-distpicker的常用功能
2019/07/23 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
2020/09/02 Javascript
Python使用plotly绘制数据图表的方法
2017/07/18 Python
Python整型运算之布尔型、标准整型、长整型操作示例
2017/07/21 Python
使用python 爬虫抓站的一些技巧总结
2018/01/10 Python
Django进阶之CSRF的解决
2018/08/01 Python
Python Learning 列表的更多操作及示例代码
2018/08/22 Python
django-crontab实现服务端的定时任务的示例代码
2020/02/17 Python
Python dict和defaultdict使用实例解析
2020/03/12 Python
pyinstaller打包单文件时--uac-admin选项不起作用怎么办
2020/04/15 Python
如何理解python对象
2020/06/21 Python
Python环境使用OpenCV检测人脸实现教程
2020/10/19 Python
Expedia爱尔兰:酒店、机票、租车及廉价假期
2017/01/02 全球购物
Booking.com西班牙:全球酒店预订
2018/03/30 全球购物
关于环保的建议书400字
2014/03/12 职场文书
投标人廉洁自律承诺书
2014/05/26 职场文书
群众路线剖析材料范文
2014/10/09 职场文书
2014年中职班主任工作总结
2014/12/16 职场文书
餐厅服务员岗位职责
2015/02/09 职场文书
院系推荐意见
2015/06/05 职场文书
初中教务主任竞聘演讲稿(范文)
2019/08/20 职场文书
Vue实现下拉加载更多
2021/05/09 Vue.js
MySQL基于索引的压力测试的实现
2021/11/07 MySQL