Javascript jQuery ajax请求中包含#时URL中断
当我使用jquery Ajax请求包含#符号的url时,#之后的url字符串被截断。例如:Javascript jQuery ajax请求中包含#时URL中断,javascript,jquery,Javascript,Jquery,当我使用jquery Ajax请求包含#符号的url时,#之后的url字符串被截断。例如: http://somesitem.com/?name=Some#thing 当我观察到firebug中请求的这个url时,我看到提交的所有内容都是: http://somesitem.com/?name=Some 我尝试使用encodeURI函数,但没有成功 关于如何提交包含#?的整个字符串的任何提示可能是因为字符具有特殊含义。它基本上是一个保留字符。我可能只是建议您使用不同的字符作为任何用途。enc
http://somesitem.com/?name=Some#thing
当我观察到firebug中请求的这个url时,我看到提交的所有内容都是:
http://somesitem.com/?name=Some
我尝试使用encodeURI函数,但没有成功
关于如何提交包含#?的整个字符串的任何提示可能是因为
字符具有特殊含义。它基本上是一个保留字符。我可能只是建议您使用不同的字符作为任何用途。encodeURI不会删除“#”。您需要使用encodeURIComponent
encodeURIComponent('Some#thing')
这应该会产生如下结果:
Some%23thing
尝试将“#”替换为“%23” 片段标识符永远不会传递给服务器。如果要将其发送到服务器,首先需要将现有片段转换为标准url参数
var url = window.location;
//url = http://somesitem.com/?name=Some
url += '&hash='+window.location.hash;
//url = http://somesitem.com/?name=Some&hash=thing
$.get(url);
片段标识符的功能不同于代码的其余部分
URI:也就是说,它的处理完全是客户端的,没有
来自服务器的参与-当然,服务器通常会提供帮助
来确定MIME类型,MIME类型确定
碎片处理当代理(如Web浏览器)启动时
从Web服务器请求资源时,代理将URI发送到
服务器,但不发送片段。相反,代理会等待
服务器发送资源,然后代理处理
根据文档类型和片段值选择资源
JQuery文档中的特殊字符包括#
它说在JQuery中使用two\来转义(我相信在javascript中只有一次)。其他解决方案都不起作用。这很有效。谢谢