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