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