背景介绍
在某前后端分离的项目中有一个根据用户的选择(可多选)查询相关记录的需求,后端接口由 Backend(java)提供。接口格式类似如http://www.domain.com/query?checked=1&checked=2&checked=3
,可知其中 QueryString 的参数为 checked=1&checked=2&checked=3。前端为了实现需求将该字段的 key 定义为 checked,value 定义为 1&checked=2&checked=3 的字符串,生成{checked: "1&checked=2&checked=3"}
一个对象做为参数,验证结果发现后端不能正常接收到 checked 的参数。
关键要点
- 前后端分离的项目采用了接口代理(request、http proxy)
- Backend 接口中定义 checked 为一个枚举类型 (checked)
- 前端数据对象中 key 不要相同,因此只能采用字符串方式
过程分析
1、检验 GET 请求参数值
1 | 通过断点调试查看业务逻辑处理过程中生成的GET请求参数值为checked=1&checked=2&checked=3 |