使用 XMLHttpRequest 处理参数中的特殊字符
handling special characters in parameters with XMLHttpRequest
尝试使用 xmlHttpRequest
从前端 (javascript) 发送密码 POST 和其他名称如
的参数
"&password=" document.getElementById('password').value
我正在使用 HttpServletRequest.getparameter 来获取密码的参数字符串,例如 string pswd = request.getparameter("password");
该代码适用于所有具有特殊字符的密码,但 qwe100%qwe、qwe198%qwe 等密码除外
当我传递这些密码时,如果我要读取用户名或与密码一起发送的其他参数也会导致异常[illegalArgumentException]
感谢任何帮助..
您需要在Java脚本端使用encodeURIComponent,然后再将其传递到后端。
即:
var pass = encodeURIComponent(document.getElementById('password').value);
请注意,在 Java 端,您应该执行以下操作:
URLDecoder.decode(request.getParameter("password"));
编辑
正如@BalusC 指出的那样,我在 Java 方面是错误的 - 您已经完成了 Java 脚本方面需要的工作,因此您不需要 Java部分。
尝试使用 xmlHttpRequest
从前端 (javascript) 发送密码 POST 和其他名称如
"&password=" document.getElementById('password').value
我正在使用 HttpServletRequest.getparameter 来获取密码的参数字符串,例如 string pswd = request.getparameter("password");
该代码适用于所有具有特殊字符的密码,但 qwe100%qwe、qwe198%qwe 等密码除外 当我传递这些密码时,如果我要读取用户名或与密码一起发送的其他参数也会导致异常[illegalArgumentException] 感谢任何帮助..
您需要在Java脚本端使用encodeURIComponent,然后再将其传递到后端。
即:
var pass = encodeURIComponent(document.getElementById('password').value);
请注意,在 Java 端,您应该执行以下操作:
URLDecoder.decode(request.getParameter("password"));
编辑
正如@BalusC 指出的那样,我在 Java 方面是错误的 - 您已经完成了 Java 脚本方面需要的工作,因此您不需要 Java部分。