基于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中文入门指南,翻译加实例,jQuery的起点教程
Feb 09 Javascript
js不能获取隐藏的div的宽度只能先显示后获取
Sep 04 Javascript
扒一扒JavaScript 预解释
Jan 28 Javascript
实现JavaScript的组成----BOM和DOM详解
May 18 Javascript
浅谈jQuery 选择器和dom操作
Jun 07 Javascript
js只执行1次的函数示例
Jul 20 Javascript
node.js通过axios实现网络请求的方法
Mar 05 Javascript
vue 表单输入格式化中文输入法异常问题
May 30 Javascript
JS监听滚动和id自动定位滚动
Dec 18 Javascript
layui table复选框禁止某几条勾选的实例
Sep 20 Javascript
基于 Vue 的 Electron 项目搭建过程图文详解
Jul 22 Javascript
原生JS实现拖拽效果
Dec 04 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创建PDF中文文档
2006/10/09 PHP
PHP连接MySQL进行增、删、改、查操作
2017/02/19 PHP
php实现小程序支付完整版
2018/10/09 PHP
php微信公众号开发之翻页查询
2018/10/20 PHP
如何在Laravel之外使用illuminate组件详解
2020/09/20 PHP
让你的网站可编辑的实现js代码
2009/10/19 Javascript
对采用动态原型方式无法展示继承机制得思考
2009/12/04 Javascript
jQuery AJAX 调用WebService实现代码
2010/03/24 Javascript
按下回车键指向下一个位置的一个函数代码
2014/03/10 Javascript
基于jQuery实现Ajax验证用户名是否存在实例
2016/03/30 Javascript
使用bootstrap实现多窗口和拖动效果
2016/09/22 Javascript
AngularJS路由实现页面跳转实例
2017/03/03 Javascript
基于vue1和vue2获取dom元素的方法
2018/03/17 Javascript
使用Jenkins部署React项目的方法步骤
2019/03/11 Javascript
jQuery实现简易QQ聊天框
2020/02/10 jQuery
原生js实现五子棋游戏
2020/05/28 Javascript
JavaScript中遍历的十种方法总结
2020/12/15 Javascript
[46:25]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第二局
2016/03/05 DOTA
Python标准库urllib2的一些使用细节总结
2015/03/16 Python
Python编程实现微信企业号文本消息推送功能示例
2017/08/21 Python
通过Python 接口使用OpenCV的方法
2018/04/02 Python
python特性语法之遍历、公共方法、引用
2018/08/08 Python
Python3 关于pycharm自动导入包快捷设置的方法
2019/01/16 Python
Python 之 Json序列化嵌套类方式
2020/02/27 Python
HTML5之SVG 2D入门4—笔画与填充
2013/01/30 HTML / CSS
WebSphere 应用服务器都支持哪些认证
2013/12/26 面试题
集团公司人力资源部岗位职责
2014/01/03 职场文书
班委竞选演讲稿
2014/04/28 职场文书
企业法人授权委托书
2014/09/25 职场文书
办护照工作证明
2014/10/01 职场文书
美国旅游签证工作证明
2014/10/14 职场文书
房屋租房协议书范本
2014/12/04 职场文书
浅谈克隆 JavaScript
2021/11/02 Javascript
详解JAVA的控制语句
2021/11/11 Java/Android
python 远程执行命令的详细代码
2022/02/15 Python
Python读取和写入Excel数据
2022/04/20 Python