无数次流泪的事故!!!!
特写此文章,纪念我这个猪脑壳!!!今天就2个东西玩了我一天,真爽!
@RequestMapping 注解映射请求路径
@responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML
@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。
注:一个请求,只有一个RequestBody;一个请求,可以有多个RequestParam。
注:当同时使用@RequestParam()和@RequestBody时,@RequestParam()指定的参数可以是普通元素
代码块一 这个row是bootstrap 取到的内容,是个对象
var entity=JSON.stringify(row);
var choice = confirm("确认审核通过吗?");
if (choice == true) {
$.ajax({
url: '/admin/musicList/updateStatus',
type: 'post',
data: entity,
contentType: 'application/json;charset=UTF-8',
success: function(data){
alert(data.message);
if(data.code==0){
$("#table_list").bootstrapTable('remove', {
field: 'id',
values: [row.id]
})
}
}
})
}
后台用对象接收 要加@RequestBody
代码块二 同上,AJAX写法不同
var entity=JSON.stringify(row);
$.post("/admin/musicList/updateStatus", row)
.success(function (data) {
alert("提交成功");
});
后台接收对象不用注解了
最后 大佬告诉我,划重点--------------------------------------------------------
ContentType:'application/json' 后台接收要用@RequestBody注解
JSON.stringify是把json转成字符串
ContentType:'application/json'
如果ContentType设置成application/json
使用json的特点是, post的数据可以有层级嵌套结构 .
后台需要使用 @RequestBody 注解来获取.
前端发送时, 像urllib3 , 需要进行json编码然后放到body中,