一尘不染

Chrome中的Ajax + pushState错误

ajax

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

当我通过外部链接离开网站然后返回时,Chrome会渲染该URL的缓存数据-问题是,他缓存了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响应:无缓存,但是没有效果。

Firefox 12正常运行。


阅读 179

收藏
2020-07-26

共1个答案

一尘不染

我提供了一种解决方法-我使用其他虚拟GET参数-Ajax =
1执行AJAX请求。这样,浏览器就可以识别普通HTML内容和JSON之间的区别。它对用户没有任何影响,该参数仅在Firebug中可见。

2020-07-26