主要内容
通过axios POST请求模仿Get传参请求blob数据并下载。
通过XMLHttpReqeust、Jquery Ajax请求服务端接口均收不到参数,最后axios成功,原理未知,仅作记录。
实现
function (data, scallback) {
var params = "";
Object.keys(data).forEach(k => {
if (params != "") {
params += "&";
}
var v = (data[k] == null ? "" : data[k]);
//修正 params["beginTime"] = 2024-07-01 params["endTime"] = 2025-08-25 形式的参数
if (k.indexOf("beginTime") > 0) {
params += ('params%5B%22beginTime%22%5D' + "=" + v);
} else if (k.indexOf("endTime") > 0) {
params += ('params%5B%22endTime%22%5D' + "=" + v);
} else {
//正常赋值
params += ("" + k + "=" + v);
}
});
axios.post(
top.window.BaseServerUrl + "?" + params,
{},
{
responseType: "blob",
headers: { "Authorization": top.window.Config.UserInfo["token"] }
}
).then(res => {
var url = URL.createObjectURL(new Blob([res.data]));
const link = document.createElement('a');
link.style.display = 'none';
link.href = url;
link.setAttribute('download', '数据下载.xlsx');
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}).catch(ers => {
console.log("error", ers);
});
}

2607

被折叠的 条评论
为什么被折叠?



