我使用的是电子版1.7.9。 我需要在我的应用程序中下载一个zip文件。 以下代码用于相同的。
var urlFetch = <path to the zip file I want to download>
var xhr = new XMLHttpRequest();
xhr.open('GET', urlFetch, true);
xhr.responseType = "arraybuffer";
xhr.onloadend = function () {
var status = xhr.status;
if (status == 200) {
if (undefined !== xhr.response) {
successCallback(xhr.response);
} else {
failureCallback();
}
} else {
console.error("Failed to fetch " + urlFetch + ", status - " + status);
failureCallback();
}
};
xhr.send();
在Windows 10以及MacO HighSierra上,尽管状态为200,但此代码始终未定义xhr.response。
xhr.responseText用字符串填充,但我需要的是zip文件的二进制数据,我可以用它来存储到文件中以供进一步使用。
我也试过添加以下内容,但没有成功。
xhr.setRequestHeader("Content-Type", "application/zip");
我编码的方式有什么缺失,或者这是电子/铬等的错误吗?
相同的代码在独立的HTML中完全在电子之外工作。
答案 0 :(得分:0)
问题在于包含的节点js模块xmlHttpRequest。 当我删除这个模块时,事情开始起作用。 我无法在电子应用中的开发工具的“网络”选项卡中看到XHR请求。 删除模块后,我现在可以看到请求和事情按预期工作。