PhoneGap App:获取带有相对URL的本地文件时,jQuery getJSON收到404错误

时间:2013-01-10 19:59:39

标签: android jquery cordova

我有一个HTML / JavaScript应用,我试图通过Phonegap Build app

使用PhoneGap转换为应用

通过浏览器一切正常,应用程序遇到的唯一问题是,在尝试加载本地资源时,对getJSON的调用返回404错误。

这是罪魁祸首:

$.getJSON( "./shapes/json/" + abbr + '.json', gotJSON(abbr) );

我已将每个域列入白名单,只是为了确定:

<access origin="*" />

这是否属于手机空间环境无法实现的?或者我做错了什么?

如果需要,我可以将文件托管在其他地方并进行跨域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的呼叫停止。我觉得我错过了一些简单的事情......

1 个答案:

答案 0 :(得分:1)

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