POST メソッドを使用して Spring MVC コントローラーの post メソッドを呼び出そうとしていますが、これがコントローラーのメソッドです
@Controller
@RequestMapping("springSecurity/login.json")
public class SpringSecurityLoginController
{
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
public SpringSecurityLoginStatus getStatus()
{
return springSecurityLoginService.getStatus();
}
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public SpringSecurityLoginStatus login(@RequestParam("j_username") final String username,
@RequestParam("j_password") final String password, final HttpServletRequest request, final HttpServletResponse response)
{
LOG.info("Starting login process");
return springSecurityLoginService.login(username, password, request, response);
}
}
HTML
<form:form action="${request.contextPath}/j_spring_security_check" class="login-form " id="loginForm" method="post" commandName="loginForm">
<form:input path="j_username" class="text" id="login_id" value="" name ="j_username"/>
<form:password path="j_password" class="text" value="Password" name="j_password" id="j_password"/>
<input type="submit" class="submit" value="LOGIN" id="login" />
</form:form>
ここに私のJqueryコードがあります
jQuery("#login").live('click', function(e) {
e.preventDefault();
jQuery.ajax({url: getHost() + "${request.contextPath}/springSecurity/login.json",
type: "POST",
beforeSend: function(xhr) {
xhr.withCredentials = true;
},
data: jQuery("#loginForm").serialize(),
success: function(data, status) {
if (data.loggedIn) {
// location.href = getHost() + '${ctx}/users';
//login_pannel
} else {
loginFailed(data);
}
},
error: loginFailed
});
});
しかし、上記のコードは呼び出しています
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
public SpringSecurityLoginStatus getStatus()
そしてそうではない
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public SpringSecurityLoginStatus login(@RequestParam("j_username") final String username,
@RequestParam("j_password") final String password, final HttpServletRequest request, final HttpServletResponse response)
この動作が発生する理由がわかりません