window.open('/api/exportHcReportxx?param=' + JSON.stringify(param));
公司的一段祖传代码,url
过长导致下载出错,现在要改造。window.open()
又不能改造成 post
请求。
请问,以后针对要下载的场景,有啥简洁的处理方式呢?
window.open('/api/exportHcReportxx?param=' + JSON.stringify(param));
公司的一段祖传代码,url
过长导致下载出错,现在要改造。window.open()
又不能改造成 post
请求。
请问,以后针对要下载的场景,有啥简洁的处理方式呢?
参数实在是不能简洁化的话,那就只能用post来下载了.
这里借助了axios,responseType
需要设置为blob
axios({
url: '/api/exportHcReportxx', //URL,根据实际情况来
method: "post",
data: param,
responseType: "blob"
}).then(function (response) {
const link = document.createElement("a");
let blob = new Blob([response.data], { type: response.data.type });
let url = URL.createObjectURL(blob);
link.href = url;
link.download = `实际需要的文件名.${response.data.type.split('/')[1]}`;
link.click();
document.body.removeChild(link);
});
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答5.2k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
自己做个短地址服务,然后open的是短地址,然后再做一个redirect跳转到实际地址即可。