gpt4 book ai didi

javascript - 为什么这些对象属性未定义?

转载 作者:行者123 更新时间:2023-11-28 19:45:10 25 4
gpt4 key购买 nike

我正在尝试使用 json_encode 访问从我的 php 脚本返回的对象的属性,如下所示:

php

echo json_encode(array(
'person_id' => $personID,
'job_id' => $jobID)
);

JS

$.ajax({
url: url,
cache: false,
type: "POST"
}).done(function(sData){
console.log(sData);
console.log(sData.job_id);
console.log(sData.person_id);
});

输出:

{"person_id":1,"job_id":1}
undefined
undefined

这是怎么回事?为什么我无法访问这些属性?

更新:

对于任何 future 的访问者,这是我之前犯过很多很多次的错误(遗漏了 dataType),并且肯定会再次犯下。

这可能特别令人困惑,因为当您在 Chrome 开发工具中检查服务器响应时,它会自动解析为 JSON 对象(在 PREVIEW 选项卡中)。

enter image description here

Chrome 这样做很好,这样您就可以轻松检查您的响应数据,但是您的 javascript 代码却并非如此,您需要声明响应的正确 dataType,以便您的代码可以将数据解释为对象而不是字符串。

最佳答案

默认情况下,

$.ajax 不会将响应评估为 JSON。您必须传递 dataType: 'json'

这样就可以了

$.ajax({
url: url,
cache: false,
type: "POST",
dataType: 'json'
}).done(function(sData){
console.log(sData);
console.log(sData.job_id);
console.log(sData.person_id);
});

关于javascript - 为什么这些对象属性未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24415734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com