bug: @RequestBody注解失效,服务器返回415
这个问题耽误了我相当长的时间,我已经很难受了,然而,在得知错误原因后,更是难受了。
首先,问题是这样的,我调用的JQuery的ajax()方法,从前端返回json对象,希望通过@RequestBody为它创建String类型的JAVA Bean对象:
这是一个415错误,于是我上网查找错误类型:不支持的媒体类型。
于是我开始修改接收参数的类型:
我把String pr 换成了productInfo pr 结果竟然还是415,
于是我开始怀疑前端是不是出了问题:
我在erro里面设置了显示错误状态码,显示的是error,我把它理解为出错:原因应该是后台程序没有返回值,在程序中加了断点debug一下,果然没有,
甚至直接跳过断点..看来连程序的入口都没进去?
由于之前一直没问题,现在又耽误了好久,这时候我开始慌了,难道是找不到这个方法吗?
url?
于是我修改了ajax的url参数,改来改去都是一个值404(),不对。
那只能是@RequestBody来背这个锅了,我很诧异之前他都可以把json对象转换成String 类型的,今天就不行了?
于是我把它去掉了,
吼吼,415是没了,直接500:
而且还是第一行的问题,错误显而易见,我需要@RequestBody啊!不然提取不了请求体中的内容,也就不能转换为String类型。
https://www.cnblogs.com/qq78292959/p/3760651.html
于是我又把他加上去了,开始直接搜索@Request 415,虽然不是我的问题,但给了我重要提示:
https://blog.csdn.net/qq_22585453/article/details/78478324
是配置文件出了问题!
问题到此为止了,原来是我在了解@ResponseBody注解之前想要转换json格式数据添加的转换器Bean对象,现在已经没有用了,但是我却忘了删。。。他一定对@request默认的转换器产生了影响!
至此,我明白了一个道理:当你不了解一个东西的时候,不要随随便便复制粘贴他们,而且当问题得到解决时,应该想想对你产生帮助的部分到底是哪些,而没用的代码要立即删除!