0

jquery ajax 函数删除 URL 中的锚点。东西.html#anchor

如果我们将 # 作为脚本的参数怎么办?

我可以阻止 jquery 删除锚点吗?

4

4 回答 4

3

你不能,因为锚不是请求的一部分。锚点在客户端(由浏览器)解释。如果要发送锚点,则必须将其保存到数据结构中,然后以这种方式发送到服务器。

于 2012-10-01T14:28:17.763 回答
2

不,因为后面的部分#(称为片段)永远不会发送到 Web 服务器;它不是 HTTP 请求的一部分。它只能从客户端脚本访问。

使用 jQuery、AJAX 或者只是将 URL 粘贴到浏览器的导航栏中并点击ENTER;都没关系。这种行为在所有情况下都是相同的。

于 2012-10-01T14:28:42.777 回答
0

你不能留着#。您可以将其连接起来:

data.url + "#" + data.anchor

...或类似的东西。

于 2012-10-01T14:30:38.577 回答
0

哈希标签在技术上不是 url 的一部分,因为它表示页面上的锚点并且不会发送到网络服务器。如果您需要将其作为随 AJAX 请求发送的表单数据的一部分传递给服务器,您可以使用location.hash

var urlWithHash = location.href + location.hash;
于 2012-10-01T14:28:31.817 回答