我有一个带有以下Post代码的RestController,并尝试在我的AJAX中使用它来在数据库表中添加数据。我有以下错误。
RestController方法发布
@RequestMapping(method = RequestMethod.POST)
public void create(@RequestBody MessageChat chatmessage) {
messageService.save(chatmessage);
}
Ajax调用
$( "#vut" ).on( "click", function(e){
e.preventDefault();
e.stopPropagation();
$.ajax({
url: '/messagechat',
method: 'POST',ContentType:'application/json',dataType: 'JSON',
data: {
message: 'a'
}
})
});
错误
{"timestamp":1498660502132,"status":415,"error":"Unsupported Media Type","exception":"org.springframework.web.HttpMediaTypeNotSupportedException","message":"Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported","path":"/messagechat"}
有人可以帮忙吗?
答案 0 :(得分:2)
应该是
$( "#vut" ).on( "click", function(e){
e.preventDefault();
e.stopPropagation();
$.ajax({
url: '/messagechat',
method: 'POST',
dataType: 'json',
data: JSON.stringify({message: 'a'})
});
});
在你的控制器中:
@RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
public void create(@RequestBody MessageChat chatmessage) {
messageService.save(chatmessage);
}
答案 1 :(得分:1)
根据documentation of jQuery's function ajax()
,您应该将该属性的名称从ContentType
更改为contentType
。 Javascript标识符不区分大小写。
答案 2 :(得分:1)
尝试“ c ontentType”而不是“ C ontentType”
答案 3 :(得分:1)
尝试
width: calc(2 / 3 * 1px);
或者您也可以将其设置为headers =" Accept = application / json"