【发布时间】:2014-06-05 18:13:06
【问题描述】:
我正在使用 ajax 获取帖子的 facebook cmets,因此以下 php 函数代码通过 json 编码将数据返回到 ajax 调用。
echo json_encode(array($JsonData,$arr2));
die();
但是 $JsonData 中的内容已经是 json 格式,因为我正在使用该 php 函数中的服务器端图形 api 调用获取 Facebook 帖子的这些 cmets 数据,并在回显之前首先分配给 $JsonData。
但是在 ajax 成功函数上我没有得到数据。
success:function (data, textStatus, XMLHttpRequest) {
var comments=data[0].data;
alert(comments); //shows something undefined
(当我单独以这种方式获取数据时,我只在 php 函数中以这种方式返回 cmets 数据回显 $JsonData; 并在成功函数 cmets=data.data 中返回)
所以现在我必须通过 ajax 调用获取另一个数组 $arr2,所以返回的数据 json_encode(array($JsonData,$arr2)) 不起作用。由于 $JsonData 已经是 json 格式,所以在服务器端进行 json 编码可能会导致问题。
但是如果我使用 jquery json 解析如下 jQuery.parseJSON(data[0]);然后我遇到了 cmets=jQuery.parseJSON(data[0]).data.
考虑到如果 parseJson 不适用于所有 jquery 版本,当 $JsonData 已经是 json 格式并让事情在成功函数中工作时,我还有什么其他方法可以避免在服务器端返回代码中的 json_encode 耗时调用。仅供参考,我使用了“json”作为 ajax 调用中的数据类型。
【问题讨论】:
标签: javascript php jquery json