当我使用包含# 符号的jquery Ajax 请求一个url 时,# 之后的url 字符串被截断。例如:
http://somesitem.com/?name=Some#thing
当我观察到在 firebug 中请求此 url 时,我看到提交的所有内容是:
http://somesitem.com/?name=Some
我尝试使用 encodeURI 函数但没有成功。
有关如何提交包含 # 的整个字符串的任何提示?
当我使用包含# 符号的jquery Ajax 请求一个url 时,# 之后的url 字符串被截断。例如:
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 发送到服务器,但不发送片段。而是代理等待服务器发送资源,然后代理根据文档类型和分片值处理资源
http://api.jquery.com/category/selectors/
JQuery 文档中的特殊字符包括 #
它说使用两个 \ 在 JQuery 中转义(我相信只在 javascript 中一次)。
这可能是因为这个#
角色有特殊的含义。它基本上是一个保留字符。我可能只是建议您使用不同的字符来使用它。