这篇文章主要介绍了http/https post请求 返回415错误状态码的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,有需要的朋友们可以一起学习学习哈。
一、背景描述
最近在维护一个老的项目,需要新增加点功能,后端接口写完之后,与前端联调时,post请求竟然返回415状态码,一时间有点懵,于是开始各种搜索,收集资料,终于明白为什么会出现这种情况了。
415错误的解释是说,服务器无法处理请求附带的媒体格式。以下是HTTP的状态码关于415返回码的说明:
415 | Unsupported Media Type | 服务器无法处理请求附带的媒体格式 |
二、错误原因
前端post请求时,在请求头里的Content-Type 设置为:application/x-www-form-urlencoded,类型的了。
而后端Controller接口中,请求方法中我添加了@RequestBody注解,如下图所示
关于@RequestBody注解,主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的),后台使用@RequestBody注解,前端是需要使用的Content-Type类型为application/json传入时才能被后端方法接收到,如果使用Content-Type为其他类型时则接收不到。
三、解决方案
以下有两种解决方案,也是根据以上原因得到的,分别为
3.1 后端修改
去掉@RequestBody注解,在后端接口的方法中去掉@RequestBody注解即可。
3.2 前端修改
修改请求时的请求头里Content-Type类型为application/json。
完结!