在ajax调用上设置window.location.hash

dev*_*s11 0 javascript php hash window.location

我相信这是一个非常简单的问题.

我正在使用jquery进行ajax调用,我想要的是在调用之后设置自定义哈希,类似于:

window.location.hash = '?url=http://www.sitename.com';
Run Code Online (Sandbox Code Playgroud)

但它之前返回#符号,我不想要它

www.mysitename.com/#?url=http://www.sitename.com
Run Code Online (Sandbox Code Playgroud)

所以基本上如何删除#符号并附加一个干净的哈希没有它?

谢谢.

Thi*_*ter 6

你不能.如果你想设置一个查询字符串(?something=something东西)你必须通过改变location.search(只有查询字符串)或者location.href- 没有AJAXish/Web2.0ish; 来设置它(并通过这样做导致页面重新加载)

哈希是#签名后的客户端部分,从未发送到服务器.它纯粹是为了定位页面元素(例如a <h2 id="something">是以散列为目标#something),现在将状态信息保存在URL中,以便后退/前进按钮在AJAX应用程序中保持工作(尽管最终会被HTML5的pushState函数替换) ).

如果您仍想使用哈希,请以与谷歌兼容的方式进行操作.基本上它意味着你应该#!something在哈希中使用,它something也可以是经典(非AJAX)请求中真实URL的一部分.