Chrome历史记录漏洞可能存在 - 进行PRG操作时,当再次导航到相同的表单时,不会添加历史记录条目。

7
在Chrome浏览器中出现了奇怪的后退按钮行为。我有两个页面-网格和表单。场景如下:
1.从网格导航到表单时,一切正常-网格被添加到历史记录中。
2.当通过post将表单发送到服务器时,我使用RedirectToAction重定向(302)到网格-表单被添加到历史记录中。
3.在重定向之后再次从网格导航到表单,在历史记录中没有添加包含网格地址的历史记录点
现在你需要点击两次后退按钮才能回到网格。
如果你重复所有步骤几次并查看历史记录堆栈,你会看到一个悲伤的表单条目列表,其中间没有网格。 编辑:这里是一个演示问题的页面链接,请在Chrome中打开它并按照说明操作- 查看Chrome历史记录错误的操作 我发现这个问题的唯一“解决方案”是在链接到表单中放置一些随机垃圾,但我真的很讨厌这样做。

我几乎可以确定它与我使用的服务器技术无关。它与服务器上的302重定向以及返回相同URL有关。添加了MVC部分以提供上下文,猜测在使用RoR时也会发生这种情况... - Avi Pinto
你能为我建立一个小的示例网站来进行复现吗? - Udi
我将尝试添加一些内容,现在它深藏在我的应用程序中。 - Avi Pinto
1个回答

3

这个 bug 存活得如此之久真是令人惊讶。遗憾的是,返回 303 并不能解决 Chrome 的问题。 - Avi Pinto
将303添加到示例页面中,我没有接受你的答案,因为它没有解决Chrome的问题,而且保持开放状态可能会引起更多人对该问题的关注(所以+1并感谢你的帮助)。 - Avi Pinto
现在已经向示例页面添加了另一个链接,指向一个将进行帖子并使用303重定向的表单。 - Avi Pinto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接