问题描述:
使用vue.js 下载文件的时候,设置的类型是'Blob',axios请求接口下载,请求成功时返回的是一个流形式的文件,但是请求失败的时候返回的是json ,需要用默认的responseType: 'json'来处理错误信息,那么问题来了,我该怎么根据服务器响应后才设置这个responseType?

问题重现:
请求设置了responseType: 'Blob',
请求成功时,下载文件
请求失败时,后端返回json对象,如:{"msg":"系统异常","code":1,"success":false},也被转成了arraybuffer

解决办法:

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))let blob = new Blob([res.data], { type: 'application/pdf' }) // 假设文件为pdflet link = document.createElement('a')link.href = window.URL.createObjectURL(blob)link.download = fileNamelink.click()link.remove()} else {// 其它情况}}).catch(err => {var enc = new TextDecoder('utf-8') var res = JSON.parse(enc.decode(new Uint8Array(err.data))) //转化成json对象console.log(res)})

axios 的responseType 类型动态设置相关推荐

  1. axios设置text html,axios封装动态设置Content-Type

    问题如下: 有个问题 是这样的 后台给的API接口 请求类型有两种 'Content-Type': 'application/json' 'Content-Type': 'application/x- ...

  2. Vue+Vuex+Axios+ECharts 画一个动态更新的中国地图

    一.生成项目及安装插件 # 安装 Vue Cli npm install vue-cli -g# 初始化项目 vue init webpack vue-china-map# 切到目录下 cd vue- ...

  3. 微信小程序动态设置 tabBar

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 使用微信提供的API wx.setTabBarItem(Object object) 动态设置 tabBar ...

  4. 【WPF】动态设置Binding的ConverterParameter转换器参数

    原文:[WPF]动态设置Binding的ConverterParameter转换器参数 问题:XAML中,想要在一个Bingding语句中再次Bingding. Source="{Bindi ...

  5. 动态设置 GridView Web 服务器控件列宽

    ASP.NET 如何:动态设置 GridView Web 服务器控件列宽 默认情况下,会自动调整 GridView 控件中列的大小.列将呈现为不含宽度信息的 HTML 表单元格(td 元素):大多数浏 ...

  6. Spring AOP根据JdbcTemplate方法名动态设置数据源

    2019独角兽企业重金招聘Python工程师标准>>> 说明:现在的场景是,采用数据库(Mysql)复制(binlog)的方式在两台不同服务器部署并配置主从(Master-Slave ...

  7. android 动态改变语言,android动态设置app当前运行语言的方法

    android开发中有时候碰到切换语言的需求,这时候需要通过代码动态改变当前运行语言. package com.example.androidtest; import java.util.Locale ...

  8. android11 动态设置屏幕旋转方向

    1.需求 客户动态设置屏幕的旋转方向,下次开机保持设置的屏幕方向,开关机动画也要跟着旋转. 2.分析 如果开关机动画也要跟着旋转,就不跟再LocalDisplayAdapter.java里面改了,因为 ...

  9. APP国际化、动态设置控件颜色(APP个性化)

    亲身体验:某些时候QQ音乐首页整体都成灰色,艾玛,BUG!!!,截图反馈.只有首页,其他的界面没问题,好家伙,故意的! 确实,今天咱也来搞一下,这篇文章主要记录项目 1. 国际化 2. 动态设置控件颜 ...

最新文章

  1. 技术图文:位运算技术在求解算法题中的应用
  2. 数据派新年寄语 | 新时代,新年好!
  3. 人脸识别市场广 离不开政策支持及市场强劲需求
  4. 队列学习笔记 顺序队列
  5. centos 6.8 64B mini origin vm file
  6. 手机java程序_郑州北大青鸟:用手机也能编写Java程序代码?
  7. mysql5.17免安装教程_详细介绍MySql5.7.17免安装配置教程的示例代码
  8. 【VS开发】CTimeSpan类
  9. MyEclipse的自动补全功能:输入@或者.没提示
  10. 配置jdk和maven环境并测试
  11. Html5+NodeJS——拖拽多个文件上传到服务器
  12. 乒乓球比赛 两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比 请编程序找出三队赛手的名单。
  13. unix oracle数据库启用,UNIX下ORACLE数据库的创建
  14. [Network] okhttp3与旧版本okhttp的区别分析
  15. poi导出excel写入公式_POI导出Excel增加公式核心代码
  16. 著名的 P=NP 问题到底是什么?
  17. matlab中inf怎么判断,MATLAB中Inf或inf表示()、NaN或nan表示()、nargout表示()。
  18. java学校,班级,学生类的三级关系
  19. 如何使用启动盘PE桌面工具安装原版win7系统?
  20. 7z压缩软件dos命令

热门文章

  1. 前端非框架类知识点汇总
  2. vue-print-nb 实现页面打印(含分页打印)
  3. 第二十一章 异步编程
  4. centos7 安装gitea使用
  5. 深度探索c++对象模型(5):ctor、dtor、copy
  6. 【scapy】OSError: b‘Error opening adapter: \xcf\xb5\xcd\xb3\xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb
  7. 苹果电脑mysql安装流程_mac系统下安装mysql步骤
  8. Introducing Android Instant Apps - Google I-O 2016 翻译字幕
  9. IE浏览器缓存第二次请求的解决方案
  10. C#和JQ判断移动端还是PC端