【问题标题】:Zip download is not happeningZip 下载没有发生
【发布时间】:2018-09-14 19:14:18
【问题描述】:

您好,我是 java 脚本的新手,我正在尝试从运行在 http://10.1.2.137:5000/download 中的 Web 服务器下载 zip 文件。

当我在浏览器中以http://10.1.2.137:5000/download 单独访问 URL 时,正在下载 te zip 文件,但是当我从 java 脚本调用时,似乎 zip 文件已损坏。无法使用 win rar 打开 zip 文件。 不确定这是 CORS 的问题。

$scope.downloadData  = function (){
  console.log ('Entering in to Download Method')
  var url = 'http://10.1.2.137:5000/download';
  var xhr = new XMLHttpRequest();
  xhr.open("GET", url);
  xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
  xhr.setRequestHeader("Access-Control-Allow-Origin", "*");
  xhr.responseType = "arraybuffer";
  var linkElement = document.createElement('iframe');
  document.body.appendChild(linkElement)
  xhr.send();
  xhr.onreadystatechange = function() {
  if (xhr.readyState == 4 && xhr.status == 200) {
        var blob = new Blob([str2bytes(xhr.response)], {type: "application/zip"});
        var fileName = "logs.zip";
        if (window.navigator && window.navigator.msSaveOrOpenBlob) {
            window.navigator.msSaveOrOpenBlob(blob, filename);
        } else {
            var a = document.createElement("a");
            document.body.appendChild(a);
            a.style = "display:none";
            var url = window.URL.createObjectURL(blob);
            a.href = url;
            a.download = fileName;
            a.click();
            window.URL.revokeObjectURL(url);
            a.remove();
        }
    }
        }
};

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    您可以使用window.open,这将指示浏览器打开网址并开始下载。例如

    window.open("http://10.1.2.137:5000/download","_self");
    

    【讨论】:

      猜你喜欢
      • 2014-04-02
      • 1970-01-01
      • 2019-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-07
      • 2022-01-17
      相关资源
      最近更新 更多