【问题标题】:Can't get json result on my phonegap page在我的 phonegap 页面上无法获得 json 结果
【发布时间】:2012-05-03 00:13:25
【问题描述】:

我试图在我的应用程序中获取一些 json 数据,但它不会出现在结果函数中。

function myLoad(){  
        output.innerHTML = 'in the load';// + items;
        var myJsonUrl = 'http://....be/.../lineup.php';

        $.getJSON(myJsonUrl, function(data) {
                output.innerHTML = "IN THE FUNCTION";
        });

        output.innerHTML = 'END load';
    }

在 mu 输出 div 中,我可以看到“加载中”,因此它停在 .getJSON 部分。 我已经包含了正确的 jquery 库(jquery mobile 和 jquery1.4)和来自指定 url 的 json 验证。

我做错了什么?

编辑:

在 chrome 中,它的工作原理令人叹为观止。 因为我正在为 Android 应用程序工作,所以我在 Eclipse Web 浏览器中对其进行了测试。 显然那个浏览器很糟糕。

感谢巨魔先生的想法

=> 仍然无法回答我自己的问题

【问题讨论】:

  • 你确定你使用类似json_encode()的东西以json格式回显返回吗?
  • 从头开始,点击链接,它看起来是 json 格式
  • 另外,我总是使用jsonlint.com 来验证json。
  • Chrome/IE F12 或 firebug 报告有什么问题吗?
  • 在 chrome 中它工作得令人叹息。因为我正在为 Android 应用程序工作,所以我在 Eclipse Web 浏览器中对其进行了测试。显然那个浏览器很糟糕。感谢巨魔爵士的想法

标签: javascript json jquery-mobile cordova


【解决方案1】:

我回答这个问题可能有点晚了,但我正在处理phonegap 并且遇到了类似的问题。您需要在 phonegap.plist 文件中的 ExternalHost Array 下添加 URL。

我添加了它,现在我从外部 URL 获取 JSON 数据。

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    你确定你没有得到数据吗?您的示例很可能会使用 IN THE FUNCTION 覆盖 END 加载,因为回调将在函数完成后执行。

    所以 output.innerHTML 会得到这样的值:

    1. "in the load".
    --> Ajax request start
    2. "end load"
    --> Ajax request finishes
    3. "in the function"
    

    我建议尝试在回调中输出data,并从回调函数外部移除innerHTML 更改。

    【讨论】:

      【解决方案3】:

      jsonUrl 是否与您的脚本在同一个域中?我不太确定,但我认为您不能使用 AJAX 脚本进行跨域请求。

      更新:

      php 脚本是否发送 json 标头? header('Content-type: application/json')

      【讨论】:

        猜你喜欢
        • 2012-01-19
        • 1970-01-01
        • 1970-01-01
        • 2014-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多