1、最常见的window.open(url)
可以满足就是get请求,参数在url中。
2、POST请求
第一种
前后端约定格式为字符串格式
$.ajax({
url:urls,
type:"POST",
data:args,
responseType:'blob',
success:function(res){
download(res,$('#allExport_eventName').val())
}
});
function download(data,exportName){
if(!data){
return
}
var csv="\uFEFF"+data; //为解决导出中文乱码问题
var url=window.URL.createObjectURL(new Blob([csv],{type:'text/plain'}));
var link=document.createElement('a')
link.style.display='none'
link.href=url
if(exportName){
link.setAttribute('download',exportName+'.csv')
}else{
link.setAttribute('download','事件.csv')
}
document.body.appendChild(link)
link.click()
}
第二种
前后端约定格式为特定格式
let data={id:1,name:2}
let formData=new FormData();
for(let k in data){
formData.append(k,data[k]);
}
const xhr = new XMLHttpRequest();
xhr.open('POST', url, true);
xhr.responseType = "blob";
xhr.onload = () => {
var blob = new Blob([xhr.response], {type: 'application/vnd.ms-excel'});
const blobUrl = URL.createObjectURL(blob);
var elink = document.createElement('a');
elink.style.display = 'none';
elink.href = blobUrl;
document.body.appendChild(elink);
elink.click();
document.body.removeChild(elink);
}
xhr.send(formData);