基于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 相关文章推荐
首页图片漂浮效果示例代码
Jun 05 Javascript
jQuery焦点图轮播特效代码分享(3款)
Sep 05 Javascript
javascript 四十条常用技巧大全
Sep 09 Javascript
js+css3制作时钟特效
Oct 16 Javascript
ES6新特性之模块Module用法详解
Apr 01 Javascript
Vue.js实战之组件的进阶
Apr 04 Javascript
什么是Vue.js框架 为什么选择它?
Oct 17 Javascript
vue项目中定义全局变量、函数的几种方法
Nov 08 Javascript
原生js无缝轮播插件使用详解
Mar 09 Javascript
javascript设计模式 ? 策略模式原理与用法实例分析
Apr 21 Javascript
vue实践---vue不依赖外部资源实现简单多语操作
Sep 21 Javascript
微信小程序接入vant Weapp组件的详细步骤
Oct 28 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
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
2010/03/27 PHP
php Rename 更改文件、文件夹名称
2011/05/24 PHP
php中用foreach来操作数组的代码
2011/07/17 PHP
PHP使用Memcache时模拟命名空间及缓存失效问题的解决
2016/02/27 PHP
CI映射(加载)数据到view层的方法
2016/03/28 PHP
php获取本机真实IP地址实例代码
2016/03/31 PHP
浅谈PHP中静态方法和非静态方法的相互调用
2016/10/04 PHP
PHP中include()与require()的区别说明
2017/02/14 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
2019/10/14 PHP
javascript 一段左右两边随屏滚动的代码
2009/06/18 Javascript
JQuery Dialog(JS 模态窗口,可拖拽的DIV)
2010/02/07 Javascript
JS判断两个时间大小的示例代码
2014/01/28 Javascript
JS实现为排序好的字符串找出重复行的方法
2016/03/02 Javascript
对象转换为原始值的实现方法
2016/06/06 Javascript
Bootstrap登陆注册页面开发教程
2016/07/12 Javascript
js html css实现复选框全选与反选
2016/10/09 Javascript
又一款MVVM组件 构建自己的Vue组件(2)
2017/03/13 Javascript
IScroll那些事_当内容不足时下拉刷新的解决方法
2017/07/18 Javascript
Postman模拟发送带token的请求方法
2018/03/31 Javascript
解决Angular4项目部署到服务器上刷新404的问题
2018/08/31 Javascript
JavaScript ES6中的简写语法总结与使用技巧
2018/12/30 Javascript
layui实现二维码弹窗、并下载到本地的方法
2019/09/25 Javascript
vue 子组件watch监听不到prop的解决
2020/08/09 Javascript
Python 转义字符详细介绍
2017/03/21 Python
TensorFlow实现RNN循环神经网络
2018/02/28 Python
将Dataframe数据转化为ndarry数据的方法
2018/06/28 Python
Python对ElasticSearch获取数据及操作
2019/04/24 Python
python计算二维矩形IOU实例
2020/01/18 Python
python使用自定义钉钉机器人的示例代码
2020/06/24 Python
Python实现壁纸下载与轮换
2020/10/19 Python
德国原装品牌香水、化妆品和手表网站:BRASTY.DE
2016/10/16 全球购物
Luxplus瑞典:香水和美容护理折扣
2018/01/28 全球购物
广播节目策划方案
2014/05/23 职场文书
危货运输企业安全生产责任书
2014/07/28 职场文书
numpy数据类型dtype转换实现
2021/04/24 Python
Window server 2012 R2 AD域的组策略相关设置
2022/04/28 Servers