从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); } });