HTML5历史/状态API,AJAX,PHP重定向,URL更改

时间:2014-07-08 17:02:58

标签: php ajax url-redirection html5-history

我的网站使用History.js HTML5历史/状态API(pushState,statechange事件等),并通过AJAX(jQuery)将页面加载到我的.content div中。

正常工作,直到我执行URL重定向服务器端(CakePHP $ this-> redirect($ url);)。我重定向到的页面内容更新正常,但我想在历史记录中添加新状态。

我该怎么做?有没有办法可以检查AJAX响应,知道请求是否被重定向,还是我应该从另一个方向处理问题?

示例

博客文章的管理员列表。 /职位/指数
用户选择一个帖子。 /职位/开/ 13
用户点击"删除帖子" /帖/删除/ 13

从数据库中删除后,请求被重定向到列表,但地址栏仍然是/ posts / delete / 13
我想用历史记录的新URL(/ posts / index)替换当前状态(/ posts / delete / 13)。但我怎么知道AJAX请求是否被重定向?

1 个答案:

答案 0 :(得分:1)

我想出了一个(IMO)临时解决方案。

服务器端重定向:检查请求是否异步。如果是,请不要重定向,而是添加"重定向到"标题到响应并发送它(正文为空)。客户端检查响应是否有标头。如果是,请执行replaceState并为收到的"重定向到"进行新的ajax调用。网址。

您如何看待这个?