2017-03-04 87 views
0

我從我的控制器返回一個列表。我如何從AJAX訪問這些列表值?當我發出警報時,我不確定。如何訪問從ajax從控制器返回的列表值?

控制器

@ResponseBody 
@RequestMapping(value="/practice/{category}/option", method = RequestMethod.POST, produces = "application/json; charset=UTF-8") 
public List<Map<String, Object>> practicePageOption(@PathVariable("category") String category, @RequestParam("index") int index, ModelMap model, HttpSession session){ 

    //System.out.println(optionsList.get(index)); 
    //Result; 
    //[{word=abdomen, meaning=karın}, {word=search, meaning=aramak}, {word=fund, meaning=kurmak}, {word=surgeon, meaning=cerrah}, {word=various, meaning=çeşitli}] 
    return optionsList.get(index); 
} 

AJAX:

$('#pass').click(function(event) { 
    var inputIndex = $('#index').val(); 
    $.ajax({ 
     type: "POST", 
     url: "${pageContext.request.contextPath}/practice/${category}", 
     async:false, 
     data: { index: inputIndex }, 
     success: function(data){ 
      $('#label').text(data); 
      $.ajax({ 
       type: "POST", 
       url: "${pageContext.request.contextPath}/practice/${category}/option", 
       async:false, 
       contentType:"application/json; charset=utf-8", 
       dataType:"json", 
       data: { index: inputIndex }, 
       complete: function (data) { 
        //how can use data value 
        $('#optionA').text(data[0]); 
        alert(data[0]); //undefined 
       } 
      }); 
     } 
    }); 
}); 
+0

我看到你在表單上訪問值與VAR inputIndex = $(「#指數」)VAL()。 。將該表單添加到問題中。 –

回答

0

你的問題是在你的JavaScript。對於第二個Ajax請求,您使用完整的屬性而不是成功。在完整屬性中指定的函數應該具有以下簽名:函數(jqXHR jqXHR,String textStatus)所以,而不是您的json列表您收到jquery XHR object這就是爲什麼data [0]未定義。如果你希望你的列表,那麼你應該得到這樣的:

var myList = JSON.parse(jqXHR.responseText); 
alert(myList[0]);