You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用API获取customer_name时出现Cannot read property 'customer_name' of undefined错误求助

解决API响应中获取customer_name字段的错误问题

嘿,我一眼就瞅出问题所在了!你这段代码里多做了一步完全没必要的转换,直接导致没法正确访问目标字段:

你先用var d = JSON.parse(e);把API返回的JSON字符串转换成了JavaScript对象,这一步是正确的,但紧接着你又用JSON.stringify(d)把这个对象转回成了JSON字符串并赋值给user。字符串根本没有.results这种属性,自然就会抛出Cannot read property 'customer_name' of undefined的错误。

另外还要注意:API返回的results是一个数组(看响应里的results是用[]包裹的),哪怕只有一条数据,你也得先取数组里的第一个元素,再去访问customer_name。

给你修正后的代码:

success:function(e){
  var d = JSON.parse(e);
  if (d.status === 'success') {
    // 直接用解析好的d对象,不用转成字符串
    console.log(d);
    // 先取results数组的第一个元素,再获取customer_name
    console.log(d.results[0].customer_name);
    // 顺便调整下localStorage的用法,用固定字符串当key更稳妥
    localStorage.setItem('customerName', d.results[0].customer_name);
    localStorage.setItem('gameAmount', d.results[0].game_amount);
  } else {
    alert('Username and Password Invalid'); // 这里你之前拼写错了Invalid
  }
}

再给你划几个关键注意点:

  • 解析后的JSON对象直接用就行,别再转成字符串,不然没法用点语法访问属性
  • 只要看到响应里是[]包裹的结构,那就是数组,必须通过索引(比如[0])获取数组内的元素
  • 顺手帮你改了代码里的拼写错误,Invslid应该是Invalid,不然提示文案会有问题

内容的提问来源于stack exchange,提问作者Sagar Kodte

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:40:08