URL的加号(转义问题
前端通过URL传递参数,并在后台日志中发现参数的加号是空格。
前端输入' a b '
后台日志' a b '
先说结论
HTTP为了避免歧义,如果有几个字符传递到后台,则需要转义。 示例:
'-"
- #
% - %
- &;
-
加号在传递到后台时必须转换为,而加号在URL中时,在特殊情况下为空格(Chrome浏览器会自动转换)。
不清楚为什么会发生这个问题。 但是,如果需要传递,在连接URL之前将转换为即可。 这是最合理的解决方法。
GET POST表单提交的转义
此外,提交表单时,参数会自动完成转义,该转义与预期相同。
GET提交的转义:
将1转换为1 1
开机自检提交的转义:
将1转换为1 1
手动转换方法
可以将URL连接到前端,并在需要转换时使用encodeURIComponent函数进行转义。
请注意,encodeURI和URL转义类似,无法正确处理。
编码组件可以正确转换。
代码:
let s='1 1'
let var_encode_s1=encodeURI(s )
letvar _ encode _ S2=encodeuri component (
控制台. log (var _ encode _ S1 ) )。
控制台. log (var _ encode _ S2 ) )。
输出:
1 1
1 1