今天在使用axios向后端传数据时后端突然接不到数据了,在网上搜索了一下关于axios的不同请求方式的传参方式,排查了一上午问题终于找到问题出在哪了
首先是请求方式,之前登录我使用的get请求方式,一直是把数据封装在了params里面,然后在后端接收数据时使用的笨的方法用参数一个一个去接,但是参数多的时候就显得很2。改了一下前端用post请求参数放在请求体里边,后端使用@RequestBody去接:
优化之前:↓
优化之后:↓
这里我选择使用了一个实体类来接收传过来的参数,方便维护
注意:前端要传的参数类型和名字一定要与后端接收参数的类型和名字保持一致!,否则接不到数据
get请求由于没有请求体,params参数都会拼接到url后面
在post请求中可以使用data传参,他会把参数放到请求体里边进行传参。也可以使用params传参,参数会拼接到url后面
如果前端使用的是params传参方式,那么后端controller层接收参数时应使用@RequestParam注解来对应前端的参数