0

我正在尝试使用 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”

第二个给我:

“用户”:“用户 1”,“密码”:“密码 2”

但是第三个是未定义的,即使我知道数据 JSON 对象中有东西。我的语法错了吗?我只是想访问该 JSON 的特定元素。

4

2 回答 2

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")); ?>

还将正确的内容类型 HTTP 标头设置JSON为:

header('Content-Type: application/json');

看看jQuery.post()什么是正确的 JSON 内容类型?.

于 2013-11-14T16:54:57.103 回答
0

给出的所有答案似乎都是正确的,我只是觉得您的 JSON 响应可能缺少“{”和“}”......但只是返回对象的属性......

于 2013-11-14T17:10:33.813 回答