我在服务器和JS&amp ;;中使用Spring MVC进行登录页面客户端中的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>
HomeController.java:
@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\"]");
}
}
我尝试返回EntityResponse,但没有任何改变。 Springs控制台打印记录器信息或警告但Firefox的javascript控制台不会。
答案 0 :(得分:0)
您必须在控制器中指定Requestmethod,如
@RequestMapping(value =“/ loginUser”,method = RequestMethod.POST)
你必须在{}中返回Json值 括号