前端传值不能带中括号???
# 前端传值不能带中括号???
前端通过Get方式传值,不能携带[]
# 解决方案
将前端传值通过enencodeURI()
进行转义,后台部分需要通过 URLDecoder.decode()
进行解析
- 修改前:
let arr:any = [
{name:'tome',age:18},
{name:'lake',age:18}
]
let param:any = {
data: JSON.stringify(arr)
}
1
2
3
4
5
6
7
2
3
4
5
6
7
- 修改后:
前端部分:
let arr:any = [
{name:'tome',age:18},
{name:'lake',age:18}
]
let param:any = {
data: enencodeURI(JSON.stringify(arr))
}
1
2
3
4
5
6
7
2
3
4
5
6
7
后台部分:
@GetMapping("/a")
public ResultVO get(String data) {
data = URLDecoder.decode(data, "UTF-8");
return ResultVO.getSuccess(tableService.get(data));
}
1
2
3
4
5
2
3
4
5
# 问题分析
在开发过程中,突然遇到这个问题,发现前端传报400状态码的错误
然后开始排查传值,发现在url中多了一对 []
去掉后,就可以正常访问到后台
于是怀疑是需要转义
最终,通过enencodeURI()
转义后
后台成功取到数据
# 大功告成
OK,那么我们通过上述方式解决了此类问题,在此也算记录一下。
上次更新: 2023/03/24, 08:53:10