Post-Redirect-Get后的后退按钮行为

Pau*_*aul 5 jsf http post-redirect-get

我的应用程序通过响应标头禁用浏览器上的缓存,然后使用Post-Redirect-Get模式启用后退按钮以"重新获取"当前页面.
然而,在使用Firefox 12和IE 8重新测试时,我没有看到我期待的结果(或者我之前在IE 6中看到的结果).

选择后退按钮后,我可以看到浏览器正在尝试执行原始请求(Post),而不是重定向请求(Get).当我查看Firebug的网络选项卡上的请求时,我看到以下内容:

后重定向-GET

看起来浏览器将Post和Get视为同一个请求,因此选择后退按钮会重新提交帖子:

后退按钮的结果

我使用的是JSF,但我认为这是一个浏览器问题.有谁知道为什么浏览器没有执行重定向页面的获取?

Bal*_*usC 4

运行良好。后退按钮在“POST accountDetails.xhtml”之前重新执行请求,该请求未在第一个屏幕截图中列出,但根据第二个屏幕截图显然(并且逻辑上)是“GET accountDetails.xhtml”。显然,您在与该视图关联的 bean 中或在某些过滤器中执行一些检查并重定向到“registrationWelcome.xhtml”。第一个屏幕截图中的“POST accountDetails.xhtml”是当前的已重定向到“reviewInfo.xhtml”的

返回按钮不会重新执行重定向。这是你自己的代码完成的。后退按钮也不会重新执行 POST 请求,这在第二个屏幕截图中得到了证实。