我的应用程序通过响应标头禁用浏览器上的缓存,然后使用Post-Redirect-Get模式启用back按钮来“重新获取”当前页面。
然而,现在在Firefox12和IE8上重新测试时,我没有看到我期望的结果(或者我以前在IE6上看到的结果)。
选择后退按钮后,我可以看到浏览器正在尝试执行原始请求( Post),而不是重定向的请求( Get)。当我查看Firebug的网络选项卡上的请求时,我看到了以下内容:

看起来浏览器将Post和Get视为相同的请求,因此选择back按钮将重新提交Post:

我使用的是JSF,但我认为这是一个浏览器问题。有人知道为什么浏览器不对重定向的页面执行get操作吗?
发布于 2012-06-01 03:05:52
它运行良好。back按钮在“ accountDetails.xhtml”之前重新执行请求,它没有在你的第一个屏幕截图中列出,但根据第二个屏幕截图显然(并且逻辑上)是一个“ accountDetails.xhtml”。显然,您在与该视图关联的bean中,或者在某些过滤器中,执行一些检查并重定向到"registrationWelcome.xhtml“。第一个截图中的"POST accountDetails.xhtml“是current请求,已重定向到"reviewInfo.xhtml”。
后退按钮不会重新执行重定向。这是你自己的代码做的。后退按钮也不会重新执行POST请求,这在第二个屏幕截图中得到了确认。
https://stackoverflow.com/questions/10837981
复制相似问题