【问题标题】:PhoneGap App: jQuery getJSON getting 404 error when getting local file with relative URLPhoneGap App:jQuery getJSON 在获取具有相对 URL 的本地文件时出现 404 错误
【发布时间】: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请求的某种问题。

标签: android jquery cordova


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-05-25
    • 2020-07-20
    • 2022-10-13
    • 1970-01-01
    • 2021-11-21
    • 1970-01-01
    • 2015-04-24
    • 2016-04-14
    • 1970-01-01
    相关资源
    最近更新 更多