jQuery $.getJSON 不返回键值对
Posted
技术标签:
【中文标题】jQuery $.getJSON 不返回键值对【英文标题】:jQuery $.getJSON does not return key and value pairs 【发布时间】: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]:***.com/questions/1740218/… 你不能使用简单的字符串吗?一个。键值,然后拆分它:) 我的本地主机上存在相同的 php。该脚本适用于我的本地计算机,但不适用于远程服务器。是否有我缺少的服务器设置? Dieter 这个是最简单的样本。我有更复杂的样本 :) 问题是,它在远程服务器上根本不起作用。我必须更改任何 php 或 apache 设置吗? 【参考方案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);
)
);
);
【讨论】:
以上是关于jQuery $.getJSON 不返回键值对的主要内容,如果未能解决你的问题,请参考以下文章
使用 Jquery SerializeArray() 获取 JSON 键值对
数组实例的 entries(),keys() 和 values()
Jquery中$.get(),$.post(),$.load(),$.ajax(),$.getJSON(),$.getScript()的用法总结