- 问题描述
在进行数据交互时,前端有参数传过去但后端接收到参数为空。
- 问题分析
起初以为是后端注解问题,经过检查发现是前端问题。这涉及到data和params的传参区别。
Post 请求中,params 和 data 用于传递参数,但是它们有一些区别:
用途:params 是将参数拼接在 URL 后面,作为 Query String 发送;而 data 则是在请求体中以表单的形式(键值对)发送。
可读性:params 中的参数在 URL 中可以直接看到,可读性更高;而 data 中的参数则是在请求体中,不可直接查看。
参数限制:params 的参数长度是有限制的,而 data 则没有长度限制。
安全性:由于 params 中的参数是直接拼接在 URL 中的,因此不够安全;而 data 中的参数是在请求体中,安全性较高。
而在Get请求中,只有params用于传递参数,没有data传值方式。
- 问题解决
在封装的axios方法中如果是Get将data改为params即可