Chrome中的Ajax + pushState错误

Ond*_*tes 7 ajax html5 google-chrome

我在Chrome 19中遇到了一个奇怪的错误.我通过pushState支持实现了一个完整的AJAX网站(每个非外部链接都通过AJAX请求打开).我通过JSON格式在AJAX中传输HTML片段.

当我通过外部链接离开我的网站然后返回时,Chrome会呈现该网址的缓存数据 - 问题是,他缓存了JSON内容并显示了该内容,而不是完整的网页.

这可以通过这些步骤重现(更新:从那时起我在我的网站上删除了AJAX功能,因此不再出现此错误):

  1. 打开http://beta.mirtes.cz/
  2. 单击第二个日期链接(16. 6. 2012"旁边的"这一切都以一封奇怪的电子邮件开头").此页面(您现在位于http://beta.mirtes.cz/it-all-began-with-a-strange-e-mail)通过AJAX加载.
  3. 点击"这一切都以一封奇怪的电子邮件开头".您被重定向到外部网站.
  4. 页面完全加载后,单击Chrome中的"返回".

我尝试使用Cache-Control发送所有AJAX响应:no-cache,但没有效果.

Firefox 12工作正常.

Ond*_*tes 7

我带来了一个解决方法 - 我使用额外的虚拟GET参数执行AJAX请求 - ?ajax = 1.这样浏览器就可以识别常用HTML内容和JSON之间的区别.它对用户没有任何影响,该参数仅在Firebug中可见.