如何从JQuery Ajax调用调用Spring MVC控制器

时间:2018-03-05 05:06:22

标签: java jquery ajax spring-mvc

我试图从JQuery ajax调用中调用Spring控制器方法,但它没有导航到相应的视图。

首先我通过从ajax调用调用authenticateLogin()Spring控制器函数来验证登录详细信息,成功验证后我需要将请求转发到相应的视图页面,我已经尝试使用下面的代码,但它没有导航到另一个页面。 / p>

Javascript功能:

function authenticatePricingCalcLogin() {
    var login = {
            userName : $("#username").val(),
            password : $("#password").val()
    };

    $.ajax({type: "POST",
        url: CONTEXT_PATH+"authenticateLogin",
        data:JSON.stringify(login),
        contentType : 'application/json; charset=utf-8',
        dataType : 'json',
        success: function (response) {
            if (response != null) {
                if (response.errorMsg != null && response.errorMsg != "") { // Login Error
                    alert(response.errorMsg);
                } else {
                     // Here i need to call spring controller method and to redirect to another page

                     // I have tried
                     $.ajax({type: "GET",
                            url: CONTEXT_PATH+"navigateMainPage",
                            data:JSON.stringify(loginDO),
                            contentType : 'application/json; charset=utf-8',
                            dataType : 'json'
                    });
                }
            }
        }
    });
}

AuthController.java

@RequestMapping(value = "/authenticateLogin", method = RequestMethod.POST)
public @ResponseBody LoginDO authenticateLogin(@RequestBody Login login){
    return authService.authenticateLogin(loginDO);
}


@RequestMapping(value = "/navigateMainPage", method = RequestMethod.GET)
public String navigateMainPage(@ModelAttribute("loginDO") Login login,HttpServletRequest request, Model model) {
    try {
        // Need to set User Name in session variable
    } catch (Exception e) {

    }
    return "auth/mainPage";
}

2 个答案:

答案 0 :(得分:0)

请在路径中添加/

url:CONTEXT_PATH +“/ authenticateLogin”,

答案 1 :(得分:0)

你好朋友我没有评论权限所以只回答你的问题。如果是GET请注释数据部分输入请求并从java端@ModelAttribute("loginDO") Login login删除它,否则只需将它POST 1}}并检查任何CSRF令牌是否安全。