【发布时间】:2019-12-18 14:18:52
【问题描述】:
我正在使用 Cordova Android。
我更新了我的 Android SDK 并删除然后添加了我的 android 平台。
cordova platform rm android
cordova platform add android
现在我的 XMLHttpRequest 下载脚本不再工作...我不需要脚本帮助,因为我知道它工作正常,因为我在更新之前直接使用它。还检查了我的服务器日志,没有错误。也可以通过浏览器直接访问服务器来访问这些文件。
var dlUrl = "http://myserver.com/" + fileName;
var fileSystem = cordova.file.externalApplicationStorageDirectory;
window.resolveLocalFileSystemURL(fileSystem, function (dir) {
dir.getFile(fileName, {create: true}, function (file) {
var oReq = new XMLHttpRequest();
oReq.addEventListener("load", transferCompleteDb);
oReq.responseType = "blob";
oReq.open("GET", dlUrl, true);
oReq.onload = function (oEvent) {
var blob = oReq.response;
if (oReq.status == '523' || oReq.status == '404') {
//...
} else {
if (blob) {
var writeToFile = saveFile(file, blob);
} else {
//...
} } };
oReq.onloadend = function () {
//...
};
oReq.onerror = function (e) {
alert('xml error. status [' + e.target.status + '] [' + oReq.status );
//***
//*** This is where it fails. The error code is just 0, no other info
// The request isn't even getting a chance to get a response
// Cordova is blocking it in some setting
};
oReq.send(null);
//...
Cordova 正在通过我缺少的某些设置阻止下载...
对于较新版本,我应该在 Android 平台内手动更改任何设置吗?
我的索引头,和更新前没有变化
<meta http-equiv="Content-Security-Policy"
content="default-src 'self' myserver.com http://myserver.com data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data: content:;">
我也尝试只对所有值使用 * 来打开它,但没有做任何改变
据我了解,现在应用程序内会提示权限,如果下载需要权限,我应该会收到某种提示。在尝试不再工作的新版本之前,我已经多次完全卸载并删除了旧应用程序的存储空间。
我的其他脚本能够在我存储下载的区域中创建文件夹和文件。所以它只是不能调用的 XMLHttpRequest 代码。
有什么建议吗?花了几天时间与这个作斗争......
谢谢。
【问题讨论】:
标签: android xml cordova xmlhttprequest phonegap