import axios from "axios";
import { Message } from "element-ui";
export function output(url, id) {
axios({
method: "post",
url: url, //下载地址
data: id,//传参
responseType: "blob"
}).then(rs => {
//取得返回对象中的data
let { data } = rs;
//通过data.type判断是否下载成功
if (data.type === "application/json") {
//下载失败时处理返回的json对象
let reader = new FileReader();
reader.addEventListener("loadend", () => {
//取得json对象中的message
const { message } = JSON.parse(reader.result);
Message.error(message)
});
reader.readAsText(data, "utf-8");
} else {
//下载成功时
let filename = "";
for (let item in rs.headers) {
if (item == "content-disposition") {
filename = rs.headers[item].split('"')[1];
filename = decodeURI(escape(filename));
}
}
let blob = rs.data;
let url = window.URL.createObjectURL(blob);
let link = document.createElement("a");
link.href = url;
link.download = filename;
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
window.URL.revokeObjectURL(url);
}
});
}
处理下载失败的返回
最新推荐文章于 2024-04-18 05:03:41 发布