@RequestBody的介绍:
@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(前端传值的json是字符串,不是json对象)
在使用@RequestBody接收数据时,GET方式无请求体,前端不能使用GET方式提交数据,需要使用POST方式进行提交。
在后端的接受方法中,@RequestBody最多只能有一个,而@RequestParam()可以有多个,他们可以同时使用。
注意:一个请求,只有一个RequestBody;一个请求,可以有多个RequestParam
使用时的注意事项:
1.@requestBody注解,前端请求时的content-type不是默认的application/x-www-form-urlcoded编码的内容,需要是:application/json或者是application/xml。一般情况下会使用application/json类型
2.前端做请求的时候需要注意的是把json对象要转换成字符串,而且必须是你RequestBody接受对象的所有参数,不然就会解析错误,前端请求代码如下:
var json={"id":"2",
"myOrderEvaluates":[{"content":"六角恐龙","goodsId":"4","imags":["/other/20190325-37724714-8015-49af-a786-28dc5fd83550.jpg","/other/20190325-41064eb0-534a-4cc1-b802-e4ce5a573065.jpg","/other/20190325-19f0df49-a1e8-4a89-b32c-a27e28955db6.jpg"],"rank":"0","score":"5"}]
}
$(document).ready(function () {
var jsonStr = JSON.stringify(json)
console.log(jsonStr)
$.ajax({
type:"post",
url:"http://127.0.0.1:8080/app/order/addUserOrderGoodsEvaluate",
contentType:"application/json;charset=UTF-8",
dataType:"json",
data:jsonStr,
success:function(data){},
error:function(jqXHR){}
});
});
后台接收的时候介意用对象接收也可以用string接收等等,根据你自己的实际情况来