首先,先科普一下这个注解的用法吧
@requestbody一般是用于put或post请求时,在controller处接收前端发送的值,通过适当的HttpMessageConverter转换为JAVA类,而前端在发送值的时候必须指定数据是json格式或者xml格式,否则,你会发现每次都接收不到值
经过研究之后,发现接收不到值的原因是发送的数据类型的contentType必须是application/json charset=utf-8 才可以,体现在postman上就是,你需要选如图所示的类型才可以,不然controller那块一直接收不到值的
体现在前端代码就是:
$.ajax({
url:"/login",
type:"POST",
data:'{"userName":"admin","pwd","admin123"}',
content-type:"application/json charset=utf-8",
success:function(data){
alert("request success ! ");
}
});
后端代码是:
@PostMapping("save")
@CrossOrigin
public int saveBook(@RequestBody WorkBook workBook) {
int code = this.workBookService.saveBook(workBook);
return code;
}
这样应该就可以接收到值啦