问题:http://127.0.0.1:8080/index?expr=1234
如果要a>=b+c作为expr的参数值传递给后端,url上应该显示为什么?
如果url上直接写为http://127.0.0.1:8080/index?expr=a>=b+c,后端接收到的属性值为a>=b c(见截图1),这是因为url中的+表示空格,需要将url中的+进行转义后方可正常接收(见截图2)。
Refer:
url出现了有+,空格,/,?,%,#,&,=等特殊符号的时候,可能在服务器端无法获得正确的参数值,如何是好?
解决办法
将这些字符转化成服务器可以识别的字符,对应关系如下:
URL字符转义
用其它字符替代吧,或用全角的。
+ URL 中+号表示空格 %2B
空格 URL中的空格可以用+号或者编码 %20
/ 分隔目录和子目录 %2F
? 分隔实际的URL和参数 %3F
% 指定特殊字符 %25
# 表示书签 %23
& URL 中指定的参数间的分隔符 %26
= URL 中指定参数的值 %3D