bug经过
前端使用的vue
开发,后端使用SpringBoot
,在项目没有发测试的时候用postman
调用没有问题,后来发到测试则出现了后台接收不到数据的问题.
bug原因
经过查找发现,zuul
微服务里用了一个request.getParameter()
方法来校验一些东西,而我的Controller
是用@RequestBody
接收的,前端只能使用application/json
来传输数据,这样就导致request.getParameter()
是不能获取数据的,所以校验失败.
bug解决
知道了原因,就可以下手解决了.首先zuul不能动,只能改前端请求数据的方式为application/x-form-urlencoded
,后端把@RequestBody
注解删掉,重新发测试,解决!
总结
@RequestBody
和application/json
对应,不可少@RequestParam
和application/x-www-form-urlencoded
对应,接收对象的话不用加任何注解(或者使用@ModelAttribute未测试
),可与@RequestParam
混用