使用GET下载
方式:通过创建创建一个不可见的a标签,手动触发点击事件,然后下载,再移除标签。
download = url => {
const eleLink = document.createElement('a');
eleLink.style.display = 'none';
// eleLink.target = "_blank"
eleLink.href = url;
// eleLink.href = record;
document.body.appendChild(eleLink);
eleLink.click();
document.body.removeChild(eleLink);
};
使用POST下载
方式:通过创建一个不可见的表单,手动触发提交事件,然后下载,再移除标签。
static async download(params) {
let form = document.createElement('form');
form.style.display = 'none';
form.action = `${api}tCmPaymentOrd/export`;
form.method = 'POST';
document.body.appendChild(form);
// 动态创建input并给value赋值
for (var key in params) {
var input = document.createElement('input');
input.type = 'hidden';
input.name = key;
input.value = params[key];
form.appendChild(input);
}
form.submit();
form.remove();
}
优缺点对比
get请求参数数据量较小时可以使用,但如果请求参数数据量较大时,一般使用post