【问题标题】:jQuery $.getJSON does not return key and value pairsjQuery $.getJSON 不返回键值对
【发布时间】:2014-05-19 15:54:08
【问题描述】:

我有一个 js 文件。在这个文件中,我试图从服务器端 getjSON 数据。从服务端返回的json是

{"STATUS":"TRUE","DEVICE_KEY":"80147459","ERROR_MESSAGE":""}

下面的脚本不返回任何警报。我究竟做错了什么? (我检查了是否加载了jQuery和jQueryMobile。没有问题)

相同的脚本在我的本地机器上工作,但在远程服务器上不工作。这可能是 apache 或 php 设置问题吗?

谢谢

$(window).load(function () {
    $.getJSON("http://.... myfile.php", function (data) {
        $.each(data, function (k, v) {
            alert("key: " + k + "  val:" + v);
        })
    });
});

【问题讨论】:

  • 可能是跨域ajax
  • $.getJSON 函数可能返回错误? [试试这个问题][1]。 [1]:stackoverflow.com/questions/1740218/…
  • 你不能使用简单的字符串吗?一个。键值,然后拆分它:)
  • 我的本地主机上存在相同的 php。该脚本适用于我的本地计算机,但不适用于远程服务器。是否有我缺少的服务器设置?
  • Dieter 这个是最简单的样本。我有更复杂的样本 :) 问题是,它在远程服务器上根本不起作用。我必须更改任何 php 或 apache 设置吗?

标签: jquery json getjson


【解决方案1】:

问题是跨域问题。

我使用了 jsonp 并且它有效.. 见 http://json-p.org/

【讨论】:

    【解决方案2】:

    我认为你没有解析它。

    JSON 只是一个 Javascript 对象表示法,它是一个字符串。您必须对其进行解析才能将其转换为对象。

    这样做:

    $(window).load(function () {
        $.getJSON("http://.... myfile.php", function (data) {
            data = JSON.parse(data); // add this line
            $.each(data, function (k, v) {
                alert("key: " + k + "  val:" + v);
            })
        });
    });
    

    【讨论】:

      猜你喜欢
      • 2021-12-20
      • 1970-01-01
      • 2011-02-21
      • 1970-01-01
      • 2010-11-29
      • 2020-06-30
      • 2017-08-02
      • 1970-01-01
      • 2011-02-18
      相关资源
      最近更新 更多