**
一、导入导出接口增加responseType:‘blob’
**
axios({
url: '接口',
method: 'post',
data:{},
responseType: 'blob'
});
二、导出方法封装
//data 文件流
//fileName 文件名称
/* mi***ype 文件类型例如:
* 下载 excel : "application/vnd.ms-excel"
*下载 word : "application/msword"
*下载 Zip 方法: "application/zip"
*下载 Html 方法: "text/html"
* 下载 Markdown "text/markdown"
* *下载pdf "example.pdf"
*/
download0(data, fileName, mi***ype) {
// 创建 blob
let blob = new Blob([data], { type: mi***ype });
// 创建 href 超链接,点击进行下载
window.URL = window.URL || window.webkitURL;
let href = URL.createObjectURL(blob);
let downA = document.createElement("a");
downA.href = href;
downA.download = fileName;
downA.click();
// 销毁超连接
window.URL.revokeObjectURL(href);
},
三、因为加了responseType:‘blob’,接口响应返回为数据流,转为json
let reader = new FileReader(); // 创建读取文件对象
reader.addEventListener("loadend", function () { //
let res = JSON.parse(reader.result); // 返回的数据
console.log(res,'返回结果数据') // { name: "小明" }
});
reader.readAsText(res.data, 'utf-8'); //res.data 返回的文件流