【问题标题】:Ajax Get response data undefinedAjax 获取未定义的响应数据
【发布时间】:2017-12-22 00:52:11
【问题描述】:

我正在尝试解析由 ajax 方法返回的 Json 字符串,但在提醒 lat,long 值时它显示未定义,但是当我打印控制台日志时,数据在那里正确显示。任何人都可以在这里帮助如何解析 GET 响应数据

$.ajax({
    type: 'GET',
    url: '/api/v1.0/tasks/'+document.getElementById("autocomplete").value,
    dataType: 'json',
    data: { 'value' : $(this).val() },
    success : function(data){
    var lat,long;
     data=JSON.stringify(data)
     for (var x = 0; x < data.length; x++) {
     lat = data[x].lat;
      alert(lat);
     long = data[x].longi;
     alert (long);
     }

} });

API 响应:

{
  "task": [
    {
      "lat": 41.21555555555555, 
      "longi": -111.99694444444445, 
      "markerText": " Ogden UT 84401"
    }
  ]
}

【问题讨论】:

    标签: javascript jquery json ajax


    【解决方案1】:

    首先删除对JSON.stringify()的调用。这是没有意义的,并且会导致问题,因为您当前正在尝试遍历 JSON 字符串中的字符。其次,您需要访问data.task,而不仅仅是data。试试这个:

    // AJAX response
    var data = {
      "task": [{
        "lat": 41.21555555555555,
        "longi": -111.99694444444445,
        "markerText": " Ogden UT 84401"
      }]
    }
    
    // in the AJAX success handler:
    var lat, long;
    data.task.forEach(function(task) {
      lat = task.lat;
      long = task.longi;
      console.log(lat, long);
    });

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-28
      • 2014-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-02
      相关资源
      最近更新 更多