我正在尝试访问我使用jQuery从.post方法返回的JSON的各个元素。当我将数据发送到create.php时,它所做的就是对数据进行json_encode并将其放在json对象中。这是我的代码:
$.post("pages/create.php", {user : "user1", password : "pass2"}, function(data) {
var newArray = new Array();
newArray = {"user":"user2","password":"pass2"};
console.log(newArray.user);
console.log(data);
console.log(data.user);
问题是前两个控制台日志的功能与我期望的完全相同。第一个给了我:
“用户2”
第二个给了我:
“user”:“user1”,“password”:“pass2”
但是第三个是未定义的,即使我知道数据JSON对象中有东西。我的语法错了吗?我只是想尝试访问该JSON的特定元素。
答案 0 :(得分:2)
将json
作为第四个参数添加到$.post()
函数
$.post("pages/create.php", {user : "user1", password : "pass2"}, function( data ) {
console.log( data.user);
}, "json");
这将发布到create.php页面并获取以json
格式返回的内容。
并确保create.php将jsonencoded数据返回为:
<?php echo json_encode(array("user1"=>"Kishor","pass1"=>"mypass")); ?>
还将JSON
的正确内容类型HTTP标头设置为:
header('Content-Type: application/json');
答案 1 :(得分:0)
给出的所有答案似乎都是正确的,我只是感觉你的JSON响应可能缺少“{”和“}”..但只是返回对象的属性......