1、前端发送 json 字符串,后端要使用 @RequestBody 来接收
注意:如果后端不使用 @RequestBody ,并不会报错,而是属性值为 null
示例1:
发送 Ajax 请求:
var param = {name: "zhangsan", age: 12};
$.ajax({
url: "http://localhost:8080/ajax_request",
type: "post",
contentType : 'application/json',
dataType : 'json',
data:JSON.stringify(param),
cache: false
})
浏览器发送参数形式:参数在 Request Payload 中
java 代码:
@PostMapping("/ajax_request")
public String ajaxTest(@RequestBody User user) {
System.out.println(user);
return "true";
}
2、前端发送对象,后端自动封装
示例2:
发送 Ajax 请求:
var param = {name: "zhangsan", age: 12};
$.ajax({
url: "http://localhost:8080/ajax_request",
type: "post",
dataType : 'json',
data: param,
cache: false
})
浏览器发送参数形式:参数在 Form Data 中
java 代码:
//这种方式不能使用@RequestParam
@PostMapping("/ajax_request")
public String ajaxTest(User user) {
System.out.println(user);
return "true";
}
也可以使用单独的属性进行接收
//可以使用@RequestParam注解进行默认值的设置,是否必须的设置等
@PostMapping("/ajax_request")
public String ajaxTest(String name, Integer age) {
System.out.println(name + "---" + age);
return "true";
}