javascript - Zip 下载没有发生
问题描述
嗨,我是 java 脚本的新手,我正在尝试从运行在http://10.1.2.137:5000/download的 Web 服务器下载 zip 文件。
当我在浏览器中以http://10.1.2.137:5000/download单独访问 URL 时,正在下载 te zip 文件,但是当我从 java script 调用时,似乎 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();
}
}
}
};
解决方案
您可以使用window.open
,这将指示浏览器打开 url 并开始下载。例如
window.open("http://10.1.2.137:5000/download","_self");
推荐阅读
- java - Hibernate Envers 在持久化数据后立即获得修订
- r - 改进 dplyr 解决方案 -- 根据其他信息通过条件排序(位置)创建变量
- heroku - 我需要升级 Heroku 中的数据库以支持超过 10K 行,因此在 Heroku 上将 hobby-dev 升级为 hobby-basic
- python - PyCharm - 安装打包工具时出现 Packaging_tool.py 错误
- javascript - 如何使用 D3 将带有摘要行的 HTML 表格条目分组到详细信息行上方
- python - Pyinstaller 生成的 exe 无法正常工作
- python - Python3.6 的 urlopen 对“一些”URL 调用 403s
- c# - Fody Costura 不嵌入 SkiaSharp DLL
- tensorflow - 多个训练模型 vs 多个特征和一个模型
- peoplesoft - 应用程序引擎人员代码绑定变量