【问题标题】:Javascript: Can't access object properties from an Ajax callJavascript:无法从 Ajax 调用访问对象属性
【发布时间】:2017-05-08 10:07:53
【问题描述】:

我想知道如何从 ajax 调用访问对象响应属性,我正在使用 laravel 5.2 和 Ajax,我有这个:

$.get('/provider/'+provider_id+'', function(response){ 
            console.log(response); 
});

是的,我尝试使用response = JSON.parse(response);,但我收到此错误Uncaught SyntaxError: Unexpected token o in JSON at position 1(…) 怎么了?或者我应该怎么做?谢谢!

【问题讨论】:

  • var time = response.created_at; 应该可以工作
  • 响应应该已经正确格式化为 JSON。显然,您将变量命名为与响应的键之一相同的名称。所以在你的情况下,你需要:response.response.whichever_key
  • 您在尝试访问属性时是否收到错误消息?看起来你可能需要做response.response.email_p 例如
  • JSON.parse 需要一个字符串,但response 已经是一个对象。 jQuery 为您解析了 JSON。
  • @daleyjem:您似乎将 JSON 与 JavaScript 对象混淆了。当然,来自服务器的 响应是 JSON,但 responsevalue 是一个对象,而不是 JSON。

标签: javascript jquery json ajax laravel


【解决方案1】:

从控制台输出中可以看到,response 已经是一个对象。无需再次解析。

$.get('/provider/' + provider_id, function(response){ 
    var data = response.response;
    console.log("Email: " + data.email_p); 
});

【讨论】:

  • 如果 response 参数具有您在答案中发布的结构,那么我的代码应该可以工作,而您的代码不应该。
猜你喜欢
  • 2021-11-06
  • 2011-03-29
  • 2018-09-13
  • 2021-12-08
  • 1970-01-01
  • 1970-01-01
  • 2020-11-28
  • 2014-03-10
  • 2022-12-31
相关资源
最近更新 更多