常见的ajax传值有两种方式
- form-data
$.ajax({
type: "post",
url: ctx + "login",
data: {
"username": username,
"password": password,
"validateCode" : validateCode,
"rememberMe": rememberMe
},
success: function(r) {
if (r.code == 0) {
debugger;
location.href = ctx + 'index';
} else {
$.modal.closeLoading();
$('.imgcode').click();
$(".code").val("");
$.modal.msg(r.msg);
}
}
});
此时Java后端需要这样接收
@PostMapping("/login")
@ResponseBody
public AjaxResult ajaxLogin(String username, String password, Boolean rememberMe)
{
UsernamePasswordToken token = new UsernamePasswordToken(username, password, rememberMe);
Subject subject = SecurityUtils.getSubject();
try
{
subject.login(token);
return success();
}
catch (AuthenticationException e)
{
String msg = "用户或密码错误";
if (StringUtils.isNotEmpty(e.getMessage()))
{
msg = e.getMessage();
}
return error(msg);
}
}
- json
$.ajax({
type: "post",
dataType: "json",
url: ctx + "login",
data: JSON.stringify({"username": username, "password": password,"validateCode" : validateCode,"rememberMe": rememberMe}),
contentType: "application/json;charset-UTF-8",
success: function(r) {
if (r.code == 0) {
debugger;
location.href = ctx + 'index';
} else {
$.modal.closeLoading();
$('.imgcode').click();
$(".code").val("");
$.modal.msg(r.msg);
}
}
});
此时Java后端需要这样接收
@PostMapping("/login")
@ResponseBody
public AjaxResult ajaxLogin(@RequestBody Test test)
{
UsernamePasswordToken token = new UsernamePasswordToken(test.getUsername(), test.getPassword(), test.getRememberMe());
Subject subject = SecurityUtils.getSubject();
try
{
subject.login(token);
return success();
}
catch (AuthenticationException e)
{
String msg = "用户或密码错误";
if (StringUtils.isNotEmpty(e.getMessage()))
{
msg = e.getMessage();
}
return error(msg);
}
}