1.问题描述:
前端传递1+2+3,后端对象中存的值变成了1 2 3,修改传递的参数值为其他,发现并没有问题。
2.前端代码:
# 异常
var name'1+2+3';
var url = "${ctx}/login?name="+name;
# 正常
var name'system';
var url = "${ctx}/login?name="+name;
# 正常
var name'admin==';
var url = "${ctx}/login?name="+name;
3.后端代码:
// Controller
@RequestMapping(value = "login")
public String test(Query query, Model model) {
return "modules/index";
}
// 实体类
@Data
public class Query implements Serializable {
private String name;
}
4.解决方案:
使用 JavaScript 中的 encodeURIComponent()
函数来对参数进行编码,以确保它们在 URL 中正确传递。
var name'1+2+3';
name = encodeURIComponent(name);
var url = "${ctx}/login?name="+name;