避免jquery ajax删除#

时间:2012-10-01 14:27:04

标签: jquery ajax url

jquery ajax函数删除URL中的锚点。 Something.html#锚

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

我可以阻止jquery删除锚吗?

4 个答案:

答案 0 :(得分:3)

你不能,因为锚不是请求的一部分。锚点在客户端(由浏览器)解释。如果你想发送一个锚点,那么你必须将它保存到一个数据结构中,然后将它保存到服务器。

答案 1 :(得分:2)

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

如果您使用jQuery,AJAX,或者只是将URL粘贴到浏览器的导航栏并点击 ENTER ,则无关紧要;在所有情况下,这种行为都是一样的。

答案 2 :(得分:0)

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

访问它
var urlWithHash = location.href + location.hash;

答案 3 :(得分:0)

您无法保留#。你可以连接它:

data.url + "#" + data.anchor

......或类似的东西。