刚刚学习SpringMVC ,ajax发送post请求出现了一些问题,记录一下。
@RequestBody 接收客户端发送的ajax请求中的json字符串,后端自动转换为User对象
前端
var username = $(‘#username‘).val();
var password = $(‘#password‘).val();
var data = {username : username , password: password};
if(username != "" && password != ""){
$.ajax({
type: "post",
url: "${pageContext.request.contextPath}/user/login",
dataType: "json",
contentType: "application/json",//设置类型为json
data: JSON.stringify(data),//数据要经过这个进行处理转为json字符串
//JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串
success: function (msg) {
//处理
},
error:function () {
alert("错误")
}
});
}else {
alert(‘请输入账号密码‘)
}
controller
@PostMapping(value = "/login")
@ResponseBody
public String login(@RequestBody User pass_user,HttpSession session){
User user = userService.login(pass_user.getUsername(), pass_user.getPassword());
if (user != null) {
session.setAttribute("user",user);
return "1";
}
return "0";
}
也可以用map接收
@PostMapping(value = "/login")
@ResponseBody
public String login(@RequestBody Map<String,Object> pass_user,HttpSession session){
User user = userService.login(pass_user.get("username").toString(), pass_user.get("password").toString());
if (user != null) {
session.setAttribute("user",user);
return "1";
}
return "0";
}
json字符串和JavaBean对象互相转换的过程中,需要使用jackson的jar包
maven加入的依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.0</version>
</dependency>
springMVC的controller接受ajax的post请求
原文:https://www.cnblogs.com/shellxx/p/13125433.html