基于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 相关文章推荐
AJAX架构之Dojo篇
Apr 10 Javascript
document.designMode的功能与使用方法介绍
Nov 22 Javascript
js下写一个事件队列操作函数
Jul 19 Javascript
js 创建快捷方式的代码(fso)
Nov 19 Javascript
js字符串完全替换函数分享
Dec 03 Javascript
jQuery中slice()方法用法实例
Jan 07 Javascript
js实现分享到随页面滚动而滑动效果的方法
Apr 10 Javascript
js实现大转盘抽奖游戏实例
Jun 24 Javascript
angularjs学习笔记之完整的项目结构
Sep 26 Javascript
JavaScript生成指定范围随机数和随机序列的方法
May 05 Javascript
webpack4的迁移的使用方法
May 25 Javascript
JS实现简单打字测试
Jun 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入门学习的几个不错的实例代码
2008/07/13 PHP
CodeIgniter CLI模式简介
2014/06/17 PHP
分享最受欢迎的5款PHP框架
2014/11/27 PHP
php自定义函数实现汉字转换utf8编码的方法
2016/09/29 PHP
PHP进阶学习之垃圾回收机制详解
2019/06/18 PHP
Yii Framework框架使用PHPExcel组件的方法示例
2019/07/24 PHP
php的单例模式及应用场景详解
2021/02/27 PHP
判断多个元素(RADIO,CHECKBOX等)是否被选择的原理说明
2009/02/18 Javascript
Mootools 1.2教程 定时器和哈希简介
2009/09/15 Javascript
javascript demo 基本技巧
2009/12/18 Javascript
jQuery ajax在GBK编码下表单提交终极解决方案(非二次编码方法)
2010/10/20 Javascript
jQuery toggleClass应用实例(附效果图)
2014/04/06 Javascript
AngularJS中$watch和$timeout的使用示例
2016/09/20 Javascript
微信小程序  audio音频播放详解及实例
2016/11/02 Javascript
js实现拖拽上传图片功能
2017/08/01 Javascript
解决vue页面DOM操作不生效的问题
2018/03/17 Javascript
小程序组件之自定义顶部导航实例
2019/06/12 Javascript
微信小程序scroll-view点击项自动居中效果的实现
2020/03/25 Javascript
js实现碰撞检测
2021/01/29 Javascript
python实现mysql的读写分离及负载均衡
2018/02/04 Python
对python多线程与global变量详解
2018/11/09 Python
python实现公司年会抽奖程序
2019/01/22 Python
python pandas写入excel文件的方法示例
2019/06/25 Python
pyqt5 QlistView列表显示的实现示例
2020/03/24 Python
详解使用canvas保存网页为pdf文件支持跨域
2018/11/23 HTML / CSS
C#如何允许一个类被继承但是避免这个类的方法被重载?
2015/02/24 面试题
电子技术专业中专生的自我评价
2013/12/17 职场文书
司马光教学反思
2014/02/01 职场文书
办公室文员自荐书
2014/02/03 职场文书
后备干部培训方案
2014/05/22 职场文书
生物科学专业自荐书
2014/06/20 职场文书
教室标语大全
2014/06/21 职场文书
市场营销计划书
2015/01/17 职场文书
家装业务员岗位职责
2015/04/03 职场文书
选购到合适的激光打印机
2022/04/21 数码科技
使用CSS实现音波加载效果
2023/05/07 HTML / CSS