Java Ajax的成功与否&x27;不执行
我正在使用服务器中的SpringMVC和客户端中的JS&Ajax做一个登录页面。我不知道出了什么问题,服务器的代码执行了,但没有返回任何内容。 login.htmlJava 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 = $("#
<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\"]");
}
}