Ajax 如何从IE上获取XMLHttpRequest响应下载文件?

Ajax 如何从IE上获取XMLHttpRequest响应下载文件?,ajax,internet-explorer,xmlhttprequest,Ajax,Internet Explorer,Xmlhttprequest,我正在使用XMLHttpRequest获取文件下载请求: var filename = 'data.zip'; var request = new XMLHttpRequest(); request.open('GET', "/solfwk/srp/exportImportService/export", true); request.responseType = 'blob'; request.setRequestHeader("ALFSSOAuthNToken", token); requ

我正在使用XMLHttpRequest获取文件下载请求:

var filename = 'data.zip';
var request = new XMLHttpRequest();
request.open('GET',  "/solfwk/srp/exportImportService/export", true);
request.responseType = 'blob';
request.setRequestHeader("ALFSSOAuthNToken", token);
request.setRequestHeader("Content-Type", "application/json");
request.setRequestHeader("Accept", "application/json");
request.onload = function() {
   var link = document.createElement('a');
   document.body.appendChild(link);
   link.href = window.URL.createObjectURL(request.response);
   link.download = filename;
   if(window.navigator.userAgent.indexOf("MSIE") > 0) {
      link.text = "Start...";                                        
      $('#messageExport').empty().append(link);
   } else {
      link.click();
   }
   $.unblockUI();
};
request.send();
对于非IE浏览器,link.click有效,但对于IE则无效。知道如何解决这个问题吗?

IE使用:

 var request = new ActiveXObject("Microsoft.XMLHTTP");
要确定XmlHttpRequest在浏览器中是否可用,请使用以下代码:

 if (window.XMLHttpRequest) {
      request = new XMLHttpRequest();
 } else {
      request = new ActiveXObject("Microsoft.XMLHTTP");
 }

我使用msSaveBlob或msSaveOrOpenBlob函数找到了这样的解决方案:

对于IE来说,它没有帮助,会发生什么,控制台中有错误吗?