我有 # 符号作为我的 URL 中的参数传递。但它会丢弃 # 之后的所有参数值。请建议我解决方案。以下是我的网址
GetConnectiont?
customerID=customer1&activenode=Sv50&parent=server&frame=imHealthCheckFrame&
connectedFrom=healthCheck&username=root&password=anil#1234&fromAskUsrPwd=askPassword
提前致谢
我有 # 符号作为我的 URL 中的参数传递。但它会丢弃 # 之后的所有参数值。请建议我解决方案。以下是我的网址
GetConnectiont?
customerID=customer1&activenode=Sv50&parent=server&frame=imHealthCheckFrame&
connectedFrom=healthCheck&username=root&password=anil#1234&fromAskUsrPwd=askPassword
提前致谢
根据此处找到的答案:如何在 URL 中转义哈希字符
替换#
为%23
。
您可以在此处找到所有保留字符的列表:Percent-encoding。
关于 JavaScript 编码的一句话
“假设 URI 是一个完整的 URI,因此不对 URI 中具有特殊含义的保留字符进行编码。
encodeURI
用适当的 UTF-8 转义序列替换除以下字符之外的所有字符:” [1]
“转义除以下字符以外的所有字符:字母、十进制数字、- _ . ! ~ * ' ( )” [2]
在您的情况下,您将encodeURIComponent()
仅在查询字符串上使用 来转义任何和所有保留字符。
! %21
# %23
$ %24
& %26
' %27
( %28
) %29
* %2A
+ %2B
, %2C
/ %2F
: %3A
; %3B
= %3D
? %3F
@ %40
[ %5B
] %5D
您需要对可能包含的参数进行编码#
,然后在服务器端代码中解码回参数。
您可以使用 Internet 中的许多资源对字符串进行 URL 编码,例如. 在你的情况下,anil#1234
变成anil%231234
.
您需要对值进行编码(如果您使用字符串连接来创建 url)。在 javascript 中,您可以使用encodeURIComponent() 之类的
encodeURIComponent('anil#1234');//or your variable here