axios 利用new FileReader() 下载文件获取返回的错误信息
2024-09-03 00:28:30
this.axios({
method: "post",
url: url,
data: data,
responseType: "blob"
})
.then(res => {
const data = res.data
let r = new FileReader()
r.onload = function () {
try {
let resData = JSON.parse(this.result)
console.log(resData)
if (resData && resData['code'] && resData['code'] != '1000') {
alert(resData.msg);//弹出返回的错误msg
}
} catch (err) {
let fileName = '下载文件名.xls'
// 兼容ie11
if (window.navigator.msSaveOrOpenBlob) {
try {
const blobObject = new Blob([data])
window.navigator.msSaveOrOpenBlob(blobObject, fileName)
} catch (e) {
console.log(e)
}
return
}
this.download(data, fileName)
alert('导出成功')
}
}
r.readAsText(data) // FileReader的API
})
.catch(e => {
let msg = "网络异常";
_that.isCanClick = true
this.$Message.error(msg);
});
// 下载文件
download(data, name) {
if (!data) {
return;
}
let url = window.URL.createObjectURL(new Blob([data]));
let link = document.createElement("a");
link.style.display = "none";
link.href = url;
link.setAttribute("download", name);
document.body.appendChild(link);
link.click();
},
最新文章
- Atitit 常用二维码对比(QR、PDF417、DM、汉信码 Aztec code maxicode
- string 常量池的理解
- Java--剑指offer(8)
- Spring RabbitMq
- Android知识散点
- 高性能Web框架Zend Framework
- TCP协议中的三次握手和四次挥手(图解)【转】
- Oracle instant client在windows下的安装和使用
- SpringMVC @SessionAttributes注解
- vue较深入的知识点
- iOS键盘事件实现、控制
- 高清语音技术(WBS)及其在手机和蓝牙耳机中的实现
- Day2 Python基础之基本操作(一)
- log4j快速入门
- 4412 uboot启动分析
- css学习(1)
- Redis---基础数据结构
- iOS开源项目周报0420
- Android之侧滑菜单DrawerLayout的使用
- 用Visual studio2012在Windows8上开发内核驱动监视进程创建