2017-12-21 15 views
1

ajaxメソッドから返されるJson文字列を解析しようとしていますが、緯度、経度の値を警告するときに未定義を示していますが、コンソールログを出力するときにデータが正しく表示されます。Ajax応答データを取得しない

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

答えて

2

まずJSON.stringify()に呼び出しを削除:誰もがここで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レスポンスを助けることができます。これは意味をなさないので、現在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); 
 
});

関連する問題