【问题标题】:Axios response object key value is undefinedaxios 响应对象键值未定义
【发布时间】: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我确实做了你所有的建议,但仍然有未定义的......

标签: php json axios undefined


【解决方案1】:

所以问题确实是 json,我将代码发布到其他地方并注意到当我 output json 时缺少字符 " { " 所以我这样做了:

var badJSON = response.data;
    var obj = eval( '(' + badJSON + ')' );
    console.log( obj );    // Logs: Object {a: "b"}
    console.log( obj.firstname, obj.lastname );

问题已解决!

【讨论】:

    猜你喜欢
    • 2022-12-05
    • 2019-07-01
    • 2021-05-26
    • 1970-01-01
    • 2021-11-02
    • 2019-10-12
    • 2020-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多