看来JQuery在处理响应中的二进制数据时遇到了一些问题。我仅使用XMLHttpRequest,并将所有数据添加到URL。
var request = new XMLHttpRequest();request.open('POST', url, true);request.setRequestHeader('Content-Type', 'application/x-www-form-urlenpred; charset=UTF-8');request.responseType = 'blob';request.onload = function(e) { if (this.status === 200) { var blob = this.response; if(window.navigator.msSaveOrOpenBlob) { window.navigator.msSaveBlob(blob, fileName); } else{ var downloadlink = window.document.createElement('a'); var contentTypeHeader = request.getResponseHeader("Content-Type"); downloadlink.href = window.URL.createObjectURL(new Blob([blob], { type: contentTypeHeader })); downloadlink.download = fileName; document.body.appendChild(downloadlink); downloadlink.click(); document.body.removeChild(downloadlink);} } }; request.send();


