Java Ajax的成功与否&x27;不执行

Java Ajax的成功与否&x27;不执行,java,javascript,ajax,spring,Java,Javascript,Ajax,Spring,我正在使用服务器中的SpringMVC和客户端中的JS&Ajax做一个登录页面。我不知道出了什么问题,服务器的代码执行了,但没有返回任何内容。 login.html <script type="text/javascript"> $(function() { $(".loguser").click(function() { var user = $("#login").val(); var pass = $("#

我正在使用服务器中的SpringMVC和客户端中的JS&Ajax做一个登录页面。我不知道出了什么问题,服务器的代码执行了,但没有返回任何内容。 login.html

<script type="text/javascript">
    $(function() {
        $(".loguser").click(function() {
            var user = $("#login").val();
            var pass = $("#pass").val();            
            $.ajax({
                method: "POST",
                url : "${prefix}loginUser",
                data : "username=" + user + "&password=" + pass,
                dataType : "json",
                success: function(data){
                    if (data.res == "YES") alert("ok");
                    else alert("NOPE");
                }

            });
        })
    })
</script>
    <table id="userData" class="center">

                    <tr id="usernametr">
                        <th><label for="user">Nombre de usuario: </label></th>
                        <th><input id="login" type="text" name="login" value=""
                            placeholder="Name" required /></th>
                    </tr>
                    <tr>
                        <th><br /></th>
                    </tr>
                    <tr>
                        <th><label for="pass">Clave de usuario: </label></th>
                        <th><input id="pass" type="password" name="pass" value=""
                            placeholder="Password" required /></th>
                    </tr>

                    <tr>                        
                        <th><button class="loguser">Acceder</button></th>
                        <th><input type="button" name="lost"
                            value="He perdido mi clave" /></th>
                    </tr>
                </table>

我也试着回复所有的回复,但没有任何改变。Springs控制台打印记录器信息或警告,但Firefox的javascript控制台不打印。

您必须在控制器中指定Requestmethod,如

@RequestMapping(value=“/loginUser”,method=RequestMethod.POST)

必须在{}中返回Json值
大括号

当您从客户端启动POST时,处理程序方法绑定到获取请求时,它是如何被调用的!请您提供整个
HomeController
正文,好吗?您知道在这两种情况下都返回
NOPE
?HomeController中没有其他内容。其标记为
@Controller
@Real怀疑论者LOL是的,我在帖子中更改了它,但在我的源代码中是不同的,我现在在这里更改它。你是否尝试直接访问URL以查看它返回的内容(如果有的话)?@Real怀疑论者Nop,我怎么做?你是说重新入侵/登录用户?登录=asdf&pass=asdasd?如果是,是,我尝试了,并且收到了错误405请求方法“Get”不受支持。不,它没有改变任何东西。它不执行成功函数:(我以前尝试过。记录器打印,控制器中的所有内容都运行良好,问题是它不会将执行返回到成功函数。记录器中的示例:INFO:es.ucm.reinvasion.HomeController-尝试登录sdsadw rrasa INFO:es.ucm.reinvasion.HomeController-确定信息:es.ucm.reinvasion.HomeController-尝试登录das asdasa WARN:es.ucm.reinvasion.HomeController-nopery this-->$.ajax({url:'/logiuser',数据:{username:username,password:password,},键入:'POST',success:function(data){});并将“var user”名称更改为“var username”,与“password”相同删除新字符串并只返回“[\“res\”:\“NOPE\”]”记录器是否打印“ok”?
@RequestMapping(value = "/loginUser")
    @ResponseBody
    @Transactional
    public String loginUser(@RequestParam("username") String username,
            @RequestParam("password") String pass, HttpServletRequest request, Model model) {
        logger.info("Trying to log in {} {}", username, pass);
        if (username.length() > 3) {
            logger.info("ok");
            return new String("[\"res\": \"YES\"]");
        } else {
            logger.warn("nope");
            return new String("[\"res\": \"NOPE\"]");
        }
    }