【问题标题】:How To Call Spring MVC Controller From JQuery Ajax Call如何从 JQuery Ajax 调用中调用 Spring MVC 控制器
【发布时间】:2018-03-05 05:06:22
【问题描述】:

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

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

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";
}

【问题讨论】:

    标签: java jquery ajax spring-mvc


    【解决方案1】:

    请在路径中添加 /

    网址:CONTEXT_PATH+"/authenticateLogin",

    【讨论】:

    • 您能在浏览器中检查您的控制台登录吗?我想一定有什么线索。我多次遇到过这样的问题。给我看你的控制台日志。也许我能帮助你。
    • 我查看了浏览器日志,没有错误。我想,如果我们再次使用 ajax 控制器导航到 ajax 方法而不是查看页面。
    【解决方案2】:

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

    【讨论】:

    • 嗨朋友..我已经尝试过发布,但它仍然是一样的..它没有导航到另一个页面。
    • 状态 403 或其他任何东西
    • 您确定没有错误,那么您的请求状态如何?在那里添加一个调试器并检查那里发生了什么? imgur.com/a/uWQTW
    猜你喜欢
    • 2018-02-24
    • 1970-01-01
    • 2015-01-16
    • 2020-05-13
    • 2011-06-22
    • 1970-01-01
    • 2016-01-22
    • 2015-10-08
    • 1970-01-01
    相关资源
    最近更新 更多