axios({
method: 'GET',
url: 'http://localhost:3000/log/down',
responseType: 'blob'
}).then((res) => {
if (res.data.type == 'application/json') {
//错误返回一般为json ,下面的方法为解析blob装华为字符串
var reader = new FileReader();
reader.onload = function (event) {
var content = reader.result;//内容就在这里
console.log(content)
return content
};
reader.readAsText(res.data);
} else {
let data = res.data
//将blob对象转化为bolb地址
let url = window.URL.createObjectURL(new Blob([data])) //blob:http://localhost:3001/f485bec0-8022-4563-a650-34cd9d7f0bc0
//创建a标签
let link = document.createElement('a')
//隐藏这个标签
link.style.display = 'none'
//让标签的地址指向创建的url
link.href = url
//添加下载属性
link.setAttribute('download', 'excel.xlsx')
// 在body中插入这个标签
document.body.appendChild(link)
// //执行点击时间
link.click()
// //移除标签
document.body.removeChild(link)
}
})
前端处理后端返回文件问题
最新推荐文章于 2024-08-25 23:35:37 发布