1、jquery 版本
要实现该功能需要使用jquery 3.x版本,这里使用了3.7.0
<script src="/jquery-3.7.0.min.js"></script>
2、实现
$("#btn-export").on('click',function (){
var form_data = new FormData();
form_data.append("account", $('input[name="account"]').val());
$.ajax({
type: "post",
url: "/account_export",
data:form_data,
/* 重点一、processData 和 contentType 都为false*/
processData:false,
contentType:false,
timeout:0,
xhr:function (){
/* 重点二、数据类型 */
var xhr = new XMLHttpRequest();
xhr.responseType = 'blob';
return xhr;
},
success: function (file,a,b) {
/* 重点三、文件名 */
let filename = b.getResponseHeader("Content-Disposition");
filename = filename.replace("attachment;filename=","");
filename = decodeURIComponent(filename);
/* 重点四、模拟点击a标签下载*/
let obj = document.createElement('a');
let url = window.URL.createObjectURL(file);
obj.href = url;
obj.download = filename;
obj.click();
window.URL.revokeObjectURL(url);
},error:function (a,b,c){
console.log(b);
}
});
});