我的网站使用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请求是否被重定向?
答案 0 :(得分:1)
我想出了一个(IMO)临时解决方案。
服务器端重定向:检查请求是否异步。如果是,请不要重定向,而是添加"重定向到"标题到响应并发送它(正文为空)。客户端检查响应是否有标头。如果是,请执行replaceState并为收到的"重定向到"进行新的ajax调用。网址。
您如何看待这个?