【问题标题】:How can I access the list values returned from the controller from ajax?如何访问从 ajax 控制器返回的列表值?
【发布时间】:2017-03-04 22:06:09
【问题描述】:

我正在从我的控制器返回一个列表。如何从 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
                }
            });
        }
    });
});

【问题讨论】:

  • 我看到您正在使用 var inputIndex = $('#index').val(); 访问表单上的值.将表单添加到问题中。

标签: jquery ajax spring jsp post


【解决方案1】:

您的问题出在您的 javascript 中。对于第二个 ajax 请求,您使用 complete 属性而不是 success。完整属性中指定的函数应具有以下签名: Function( jqXHR jqXHR, String textStatus ) 因此,您收到的不是 json 列表,而是jquery XHR object,这就是未定义 data[0] 的原因。如果你想要你的列表,那么你应该像这样得到它:

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

【讨论】:

    猜你喜欢
    • 2017-07-08
    • 2015-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-21
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    相关资源
    最近更新 更多