从php访问json数据

我在访问JSON数据时遇到问题。 我是JSON和jquery的新手,所以可能有一个简单的解决方案,我很乐意找到答案。

我的jQuery:

$.post( "currentPage.php", { 'currentPage': 1 }, function(data){ $("body").append(data); } ); 

currentPage.php:

 $returnArray['left'] = 'test_left'; $returnArray['right'] = 'test_right'; $returnArray['numLeft'][] = 1; $returnArray['numRight'][] = 2; $returnArray['numRight'][] = 3; print json_encode($returnArray); 

我试图访问这样的数据:

 data.left data['left'] 

但它返回空白,访问HTML文件中数据的最佳方法是什么?

我可能是错的,但我不认为post方法假设json的数据返回类型。 您可以通过将ajax函数更改为:

  $.post( "currentPage.php", { 'currentPage': 1 }, function(data){ $("body").append(data); }, "json" ); 

提供您希望获得的数据类型作为.post()方法的参数(在您的情况下为json ):

 $.post("currentPage.php",{'currentPage': 1}, function(data){ $("body").append(data); }, 'json' // <-- add the expected datatype ); 

我认为默认是将结果视为HTML。 阅读文档 。

jQuery.post(url,[data],[success(data,textStatus,XMLHttpRequest)],[dataType])

url包含发送请求的URL的字符串。

dataA使用请求发送到服务器的映射或字符串。

success(data,textStatus,XMLHttpRequest)如果请求成功则执行的回调函数。

dataType服务器所需的数据类型。

在JQuery中,您需要将返回数据类型( dataType )设置为json以便函数知道要期望和处理的数据类型。 从手册:

“json”:将响应计算为JSON并返回JavaScript对象。 在jQuery 1.4中,JSON数据以严格的方式解析; 任何格式错误的JSON都会被拒绝,并抛出一个解析错误。 (有关正确的JSON格式的更多信息,请参阅json.org。)

您可以使用完整的$ .ajax()调用执行此操作,也可以使用$ .getJSON() 。 没有HTTP POST快捷方式可以返回JSON(即$ .postJSON不存在),但您可以将dataType参数提供给$.ajax()或者只是将参数添加到$.post() 。 如果有JSON对象,请使用json.keyName访问数据。

 $.ajax({ url: "currentPage.php", data: { 'currentPage': 1 }, dataType: "json", type: "post", success: function(data) { $("body").append(data); } });