基于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 相关文章推荐
Track Image Loading效果代码分析
Aug 13 Javascript
js 通用订单代码
Dec 23 Javascript
jQuery实现类似淘宝网图片放大效果的方法
Jul 08 Javascript
jQuery联动日历的实例解析
Dec 02 Javascript
微信小程序 scroll-view隐藏滚动条详解
Jan 16 Javascript
angular和BootStrap3实现购物车功能
Jan 25 Javascript
jQuery实现倒计时功能 jQuery实现计时器功能
Sep 19 jQuery
vue-cli初始化项目中使用less的方法
Aug 09 Javascript
React父子组件间的传值的方法
Nov 13 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
May 30 Javascript
vue之a-table中实现清空选中的数据
Nov 07 Javascript
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
Jun 09 Vue.js
关于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
剧场版动画《PSYCHO-PASS 3 FIRST INSPECTOR》3月27日日本上映!
2020/03/06 日漫
php中3des加密代码(完全与.net中的兼容)
2012/08/02 PHP
ThinkPHP中ajax使用实例教程
2014/08/22 PHP
Laravel框架实现利用中间件进行操作日志记录功能
2018/06/06 PHP
深入理解PHP+Mysql分布式事务与解决方案
2020/12/03 PHP
删除重复数据的算法
2006/11/23 Javascript
从sohu弄下来的flash中展示图片的代码
2007/04/27 Javascript
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
JS鼠标事件大全 推荐收藏
2011/11/01 Javascript
基于jquery库的tab新形式使用
2012/11/16 Javascript
window.open()详解及浏览器兼容性问题示例探讨
2014/05/29 Javascript
JavaScript中的anchor()方法使用详解
2015/06/08 Javascript
使用Javascript写的2048小游戏
2015/11/25 Javascript
Js操作DOM元素及获取浏览器高宽的简单方法
2016/09/08 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
2017/09/18 Javascript
用Node编写RESTful API接口的示例代码
2018/07/04 Javascript
jQuery事件委托代码实践详解
2019/06/21 jQuery
百度小程序自定义通用toast组件
2019/07/17 Javascript
微信小程序对图片进行canvas压缩的方法示例详解
2020/11/12 Javascript
多种类型jQuery网页验证码插件代码实例
2021/01/09 jQuery
让python json encode datetime类型
2010/12/28 Python
Python实现将一个正整数分解质因数的方法分析
2017/12/14 Python
python二维列表一维列表的互相转换实例
2018/07/02 Python
python3文件复制、延迟文件复制任务的实现方法
2019/09/02 Python
CSS3之2D与3D变换的实现方法
2019/01/28 HTML / CSS
突袭HTML5之Javascript API扩展5—其他扩展(应用缓存/服务端消息/桌面通知)
2013/01/31 HTML / CSS
美国家居装饰店:Z Gallerie
2020/12/28 全球购物
大学生求职简历的自我评价范文
2013/10/12 职场文书
应届生护士求职信
2013/11/01 职场文书
小学新教师培训方案
2014/02/03 职场文书
中学教师教育感言
2014/02/21 职场文书
洗发水广告词
2014/03/13 职场文书
同学会主持词
2014/03/18 职场文书
党课培训主持词
2014/04/01 职场文书
公益广告标语
2014/06/19 职场文书
意向协议书
2015/01/27 职场文书