說明:
這里是接收excel流的示例,故屬性為type: 'application/vnd.ms-excel'
,最重要的是responseType
要設置為blob.
另外使用ajax
是不行的,blob
類型返回值無法解析,所以即使成功了也無法進入success
回調。自己可以試一下,加深印象。
配套后端代碼地址:hutool工具包實現的導出實體到excel功能
// 導出excel數據表
function exportExcel(url, param, fileName) {
url = baseURL + url;
var xhr = new XMLHttpRequest();
xhr.open('POST', url, true);
xhr.responseType = "blob";
xhr.onload = function() {
if (this.status === 200) {
var blob = new Blob([this.response], {
type: 'application/vnd.ms-excel'
});
var reader = new FileReader();
reader.readAsDataURL(blob);
reader.onload = function(e) {
var a = document.createElement('a');
a.download = fileName;
a.href = URL.createObjectURL(blob);
$('body').append(a);
a.click();
}
} else {
alert("下載失敗");
}
};
xhr.send(JSON.stringify(param));
}