不支持的媒体类型","例外":" org.springframework.web.HttpMediaTypeNotSupportedException"," message":"内容

时间:2017-06-28 14:48:14

标签: java hibernate rest spring-boot

我有一个带有以下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"}

有人可以帮忙吗?

4 个答案:

答案 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"