【发布时间】:2012-12-25 07:58:18
【问题描述】:
我有一个 HTML/JavaScript 应用程序,我正在尝试通过 Phonegap Build app 使用 PhoneGap 将其转换为应用程序
通过浏览器一切正常,应用程序遇到的唯一问题是在尝试加载我的本地资源时,对 getJSON 的调用返回 404 错误。
这是罪魁祸首:
$.getJSON( "./shapes/json/" + abbr + '.json', gotJSON(abbr) );
为了确定,我已将每个域都列入白名单:
<access origin="*" />
这在 phonegap 环境中是不可能的吗?还是我做错了什么?
如果需要,我可以将文件托管在其他地方并进行跨域 ajax 调用,但我宁愿将文件放在设备上。
这目前正在 Android 上发生,这是我目前唯一可以测试的系统。
更新:
我现在正在尝试:
var xhrShapes = new XMLHttpRequest(), xhrSuccess = gotJSON(abbr);
xhrShapes.open('GET', config.path + "/shapes/json/" + abbr + ".json");
xhrShapes.onreadystatechange = function(e){
if( this.readyState === 4 ){
if( this.status === xhrSuccessCode ){
xhrSuccess(JSON.parse(this.responseText));
}
}
}
xhrShapes.send();
config.path 是“file:///android_asset/www”,我将0 作为成功代码(表示“file://”请求成功)。但是xhrShapes.responseText 是空白的,一切都在调用JSON.parse 时停止。我觉得我错过了一些简单的东西......
【问题讨论】:
-
"./shapes" => "../shapes"?
-
单点是正确的。
shapes文件夹与运行 JavaScript 的 index.html 位于同一文件夹中。我正在动态添加图像并设置src,它可以工作,所以我猜这是HTTP请求的某种问题。