首先SpringBoot的@ResponseBody注解,只识别Request POST的Content-Type除x-www-form-urlencode外的请求,然而,使用vue的axios时总会配一个POST

Axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

这样就不可避免的与SpringBoot中的@ResponseBody有所冲突,所以会报错415,
关于415,说法是服务器不能处理请求中附带的媒体格式。。。。总之,我没看懂。

所以,深入理解这个问题之后,有两种解决办法:
1,后端传参不用@RequestBody注解:
Post formdata数据
这种办法避免了@RequestBody与x-www-form-urlencoded之间的冲突,最简单。
2,要在后端一定要用@RequestBody注解传入的参数:
Post json数据
在使用axios时,set一个header,将请求Content-Type设置为json:

headers: {
                      'Content-Type': 'application/json'
           }
Logo

前往低代码交流专区

更多推荐