0

我有一个 HTML/JavaScript 应用程序,我正在尝试通过Phonegap Build 应用程序将其转换为使用 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. 我觉得我错过了一些简单的东西......

4

1 回答 1

1

问题与代码无关,而是文件名区分大小写......我的abbr变量是大写的,但文件名是小写的。 $.getJSON工作完美,现在我已经纠正了这个(虽然现在我的骄傲需要一些修理)。

于 2013-01-11T17:11:14.347 回答