get定制网站请求参数特殊字符&处理
get请求参数&字符处理
在get定制网站请求参数中如果包含&符号,定制网站在发送请求时就会被当作参数的分割符处理:
比如请求无包含&符号的参数:
var url = "http://localhost:8080/login?userName=小明&passWord=" + "123456";
- 1
此时请求是符合我们期望的请求!
比如请求包含&符号的参数:
var url = "http://localhost:8080/login?userName=小明&passWord=" + "123&456";
- 1
期望的请求参数应该是:
var url = "http://localhost:8080/login?userName=小明&passWord=" + "123&456";
- 1
实际的请求参数会变成:
var url = "http://localhost:8080/login?userName=小明&passWord=" + "123" + "&456=";
- 1
解决办法:
在拼接参数的时候,使用 () 进行手动转义。
即:
var url = "http://localhost:8080/login?userName=小明&passWord=" +encodeURIComponent("123&456");
- 1
其他特殊特殊字符的含义:
字符 | 特殊字符的含义 | URL编码 |
---|---|---|
+ | URL 中+号表示空格 | %2B |
空格 | URL中的空格可以用+号或者编码 | %20 |
/ | 分隔目录和子目录 | %2F |
? | 分隔实际的 URL 和参数 | %3F |
% | 指定特殊字符 | %25 |
# | 表示书签 | %23 |
& | URL 中指定的参数间的分隔符 | %26 |
= | URL 中指定参数的值 | %3D |