2

嗨,我写了一些 ajax 代码,用户停留在 www.somedomain.com 页面,插入一些数据,ajax 带来响应。当响应到来时,我希望将 url 更改为 www.somedomain.com/response 但浏览器仍保留为 www.somedomain.com 页面内容。所以页面不会改变,但只有 url 会略有不同。我也不希望 index.html 在 url 中可见。

4

2 回答 2

2

要支持旧版浏览器,您可以使用哈希导航:

保存 JavaScript 中哈希/锚点更改的历史记录

如果您只希望它在现代浏览器上运行,您可以使用 HTML 5 History API。

http://diveintohtml5.info/history.html(链接感谢 Christian Varg)

于 2012-11-12T15:08:06.483 回答
1

显然,您可以使用HTML5 History API来更改浏览器 URL,但在您的情况下,您必须更改 Ajax 响应上的 url,因此您必须在客户端处理 Ajax 事件。即,如果您在 Ajax 响应开始时更改 URL 并在 Ajax 响应结束时更改回原始 URL,则您必须处理 Ajax 的两个事件。

  1. OnRequestStart
  2. OnResponseEnd

第一个方法在您的 Ajax 请求启动的同时调用,第二个方法在您的 ajax 请求进入完成状态时调用。
因此,在此处理程序方法中,您可以更改浏览器的 UL....

于 2012-11-12T14:21:19.307 回答