responseType值的类型可为如下
值 | 数据类型 |
---|---|
‘’ | DOMString(默认类型) |
arraybuffer | arraybuffer对象 |
blob | Blob对象 |
document | Document对象 |
JSON | javaScripe object,parsed from a JSON string returned by the server |
text | DOMString |
axios请求下载导出一个文件,请求成功时返回的是一个流形式的文件,需要设置responseType: ‘arraybuffer’,但是请求失败的需要返回的是json数据,
所以需要把arraybuffer转成Json对象。
例:
请求设置了responseType: ‘arraybuffer’,
请求成功时,下载文件,
请求失败时,后端返回json对象,如:{“msg”:“系统异常”,“code”:1,“success”:false},也被转成了arraybuffer
我的解决方案是,失败时,将数据arraybuffer转成Json对象就好了。 举个例:
this.downloadFile(params).then(res => {
if (res.status === 200) {
var disposition = res.headers['content-disposition']
var fileName = decodeURI(disposition.substring(disposition.indexOf