【发布时间】:2020-11-23 19:56:08
【问题描述】:
我正在尝试访问对象key,但它返回undefined。这是代码
axios.post(url, {section: allSection, numero :'806UAB51251'})
.then(res => {
console.log(res.data.firstname);
})
.catch(function (error) {
console.log(error);
});
当我这样做时console.log(res.data); 它给了我
{"firstname":"Lilo","lastname":"CHAPE","section":"","number":"21299345"}
但是console.log(res.data.firstname); 给了undefined。
来自 php 服务器的代码:
function displayCard($section, $firstname, $lastname, $number, $groupe) {
$data=array('firstname'=>$firstname,'lastname'=>$lastname,'groupe'=>$groupe,'section'=>$section,'number'=>$number);
echo json_encode($data, JSON_PRETTY_PRINT);
...
}
【问题讨论】:
-
试试
console.log(JSON.parse(res.data).firstname) -
@PrathapReddy Axios 的默认设置是将响应解析为 JSON,所以如果这样我会非常惊讶
-
从您所展示的内容来看,我觉得还可以。不过,您应该做两件事... 1) 在您的
echo之前添加header('Content-type: application/json');。 2) 在echo之后添加exit;,以确保您不会意外输出除 JSON 以外的任何内容 -
@Phil,这是一个猜测。因为那里一切看起来都很好。我认为它可能会以字符串值的形式出现,这就是它变为
undefined的原因。 -
感谢您的帮助,当我这样做时......“console.log(JSON.parse(res.data).firstname)”......它返回:......“JSON解析错误:无法识别的令牌''堆栈跟踪:[本机代码]:解析中的null“.....还有@Phil我确实做了你所有的建议,但仍然有未定义的......