关于@RequestBody注解出现的三点错误

错误一:

{
    "timestamp": 1529747704259,
    "status": 415,
    "error": "Unsupported Media Type",
    "exception": "org.springframework.web.HttpMediaTypeNotSupportedException",
    "message": "Content type 'multipart/form-data;boundary=--------------------------634977992820316635754608;charset=UTF-8' not supported",
    "path": "/girl/girls"

}

postman必须选择raw JSON(application/json)

错误二:

{
    "timestamp": 1529747826005,
    "status": 400,
    "error": "Bad Request",
    "exception": "org.springframework.http.converter.HttpMessageNotReadableException",
    "message": "Required request body is missing: public com.imooc.domain.Girl com.imooc.controller.GirlController.girlAdd(com.imooc.domain.Girl)",
    "path": "/girl/girls"

}

Body不能为空, 可以为{}

错误三:

通过ajax,向后台传对象时,@RequestBody 接收对象,一直报415的错误

415说明传的数据类型不对,一直尝试各种方法改错,都不对,在百度@RequestBody 时,知道它接收的是json字符串,而ajax传送的是json对象,类型不一致,改错方法是:
var user = {"id":userid,
               "username":usernames,"account":accounts,
               "place":places,"phone":phones,};
 $.ajax({
        type: "POST",
       dataType: 'json',
       contentType:"application/json",
       data: JSON.stringify(user),
        ......
  })
其中,dataType和contentType也必须设置成json格式的,而JSON.stringify(obj)这个函数可以把json对象转换为json字符串,这三个设置是必不可少的。

@RequestBody注解是用于接收请求体中的数据,并将其转换为指定的Java对象。它主要用于处理Content-Type为application/json类型的请求。当使用@RequestBody注解时,可以将请求体中的JSON数据转换为对应的Java对象进行处理。例如,当请求的Content-Type为application/json时,可以使用@RequestBody注解来接收JSON格式的数据,并将其转换为Java对象。 需要注意的是,@RequestBody注解只能处理JSON格式的数据,如果请求的数据类型是application/x-www-form-urlencoded类型,则添加@RequestBody注解会导致错误。 此外,在后端的同一个接收方法中,@RequestBody注解与@RequestParam()注解可以同时使用。@RequestBody注解最多只能有一个,用于接收请求体中的数据。而@RequestParam()注解可以有多个,用于接收请求参数。使用这两个注解可以方便地接收不同类型的请求数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [post请求可以不加@RequestBody注解么?使用与不使用@RequestBody注解的区别](https://blog.csdn.net/weixin_49114503/article/details/129485593)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [@requestBody注解的使用](https://blog.csdn.net/qq_40448069/article/details/123224164)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值