spring mvc响应没有在jquery ajax调用中加载

时间:2013-10-10 06:18:26

标签: jquery ajax spring spring-mvc

我有以下jQuery ajax代码:

<script>

    $(function() {
        $("button").click(function() {
            $.ajax({
                url : "signin.html",
                type : "post",
                cache: false,
                data : "userName=" +$("#userName").val()+ '&password='+$("#password").val(),
                success : function(data) {
                    var obj = jQuery.parseJSON(data);
                    var msg = '<span>' + obj.message + '</span>';
                    $('#message').html(msg);
                },
             //EDIT
    error: function(){                      
        alert('Error in response...');
    }
            });
        });
    });
</script>


<div id="message"></div>

我有弹簧控制器,它发送消息作为我试图在消息框中打印的响应。我看到控制器处理了请求,但是来自控制器的消息没有显示在页面中。我在这里做错了什么?

public @ResponseBody ModelAndView loginUser(request attributes here){

            isUserExisits = service.authenticateUser(userBO);
            if (isUserExisits) {
                model.addObject("message", "Login Success");
            } else {
                model.addObject("message", "Login Failed");
            }}

编辑: - 我在'成功'之后添加了错误回调,并且调用了错误回调函数。

1 个答案:

答案 0 :(得分:1)

您正在返回ModelAndView对象并访问ModelAndView类中不存在的属性。如果只需要显示一条消息,请将返回类型更改为String

public @ResponseBody String loginUser(request attributes here){

            isUserExisits = service.authenticateUser(userBO);
            if (isUserExisits) {
               return "Login Success";
            } else {
                return "Login Failed";
            }}

和在网页上,您可以直接使用它。

 $(function() {
        $("button").click(function() {
            $.ajax({
                url : "signin.html",
                type : "post",
                cache: false,
                data : "userName=" +$("#userName").val()+ '&password='+$("#password").val(),
                success : function(data) {

                    var msg = '<span>' + data + '</span>';
                    $('#message').html(msg);
                }
            });
        });
    });