之前使用@RequestBody就一直报错,今天必须解决它
ajax传给后台controller的内容应该是json字符串,必须指明contentType是json字符串,data也应该转为string。
$.ajax({
url: '/user/update',
method: 'post',
data: JSON.stringify(data.field),
contentType:'application/json',
success: function (data) {
}
});
后端controller拿到了
ajax默认传输格式 application/x-www-form-urlencoded,相当于(username=“admin”&password=123)来传递数据(这是GET请求的固定格式)
大多是时候使用这个默认的就行。
但是请求是post时,请求参数如果是一两个的话,还可以使用。
请求是表单数据,能够封装成对象时,那么这个很显然不符合,把格式变为json字符串传给后端,后端通过get/set方法自动解析,然后赋值给对象 详细解释。