2

我有 # 符号作为我的 URL 中的参数传递。但它会丢弃 # 之后的所有参数值。请建议我解决方案。以下是我的网址

GetConnectiont?   
  customerID=customer1&activenode=Sv50&parent=server&frame=imHealthCheckFrame&
connectedFrom=healthCheck&username=root&password=anil#1234&fromAskUsrPwd=askPassword

提前致谢

4

3 回答 3

10

根据此处找到的答案:如何在 URL 中转义哈希字符

替换#%23

您可以在此处找到所有保留字符的列表:Percent-encoding


关于 JavaScript 编码的一句话

encodeURI(str)

“假设 URI 是一个完整的 URI,因此不对 URI 中具有特殊含义的保留字符进行编码。encodeURI用适当的 UTF-8 转义序列替换除以下字符之外的所有字符:” [1]

encodeURIComponent(str)

“转义除以下字符以外的所有字符:字母、十进制数字、- _ . ! ~ * ' ( )” [2]

在您的情况下,您将encodeURIComponent()仅在查询字符串上使用 来转义任何和所有保留字符。

!  %21 
#  %23 
$  %24 
&  %26 
'  %27 
(  %28 
)  %29 
*  %2A 
+  %2B 
,  %2C 
/  %2F 
:  %3A 
;  %3B 
=  %3D 
?  %3F 
@  %40 
[  %5B 
]  %5D
于 2013-11-05T11:08:51.990 回答
3

您需要对可能包含的参数进行编码#,然后在服务器端代码中解码回参数。

您可以使用 Internet 中的许多资源对字符串进行 URL 编码,例如. 在你的情况下,anil#1234变成anil%231234.

于 2013-11-05T11:10:38.213 回答
1

您需要对值进行编码(如果您使用字符串连接来创建 url)。在 javascript 中,您可以使用encodeURIComponent() 之类的

encodeURIComponent('anil#1234');//or your variable here
于 2013-11-05T11:09:04.980 回答