2012-05-31 15 views
5

私のアプリケーションでは、レスポンスヘッダー経由でブラウザのキャッシュを無効にし、ポストリダイレクト取得パターンを使用して、戻るボタンで現在のページを再取得できるようにします。
Firefox 12とIE 8でこれを再テストすると、私が期待していた(またはIE 6で以前見た)結果が見えません。ポストリダイレクト取得後のバックボタンの動作

戻るボタンを選択すると、ブラウザはリダイレクトされたリクエスト(Get)ではなく、元のリクエスト(Post)を実行しようとしています。私はFirebugののネットワーク]タブ上の要求を見てみると、私は以下を参照してください。ブラウザがポストを処理し、同じ要求として取得しますので、[戻る]ボタンを選択すると、再提出されているよう

Post-Redirect-Get

が見えますポスト:私はJSFを使用しています

Result of Back Button

、私はこれは、ブラウザの問題だと思います。ブラウザがリダイレクトされたページを取得していない理由を知っていますか?

答えて

4

正常です。戻るボタンは、の前に "POST accountDetails.xhtml"が表示されます。これは第1スクリーンショットには表示されませんが、第2スクリーンショット(明らかに「論理的にはGET accountDetails.xhtml」に従っています)。あなたは明らかにそのビューに関連付けられているBeanや、いくつかのフィルターを使っていくつかのチェックを行い、 "registrationWelcome.xhtml"にリダイレクトしています。最初のスクリーンショットの "POST accountDetails.xhtml"は現在リクエストで、 "reviewInfo.xhtml"にリダイレクトされています。

戻るボタンはリダイレクトを再実行しません。それはあなた自身のコードです。また、戻るボタンはPOST要求を再実行しません。これは2番目のスクリーンショットで確認されています。

+0

ありがとうBalusC、あなたは正しいです、 "POST accountDetails.xhtml"に先行するリクエストは "accountDetails.xhtmlを取得"です。私の理解を明確にするために、戻るボタンは "POST accountDetails.xhtml - > GET reviewInfo.xhtml"を同じリクエスト(および現在のリクエスト)とみなし、前のリクエスト "GET accountDetails.xhtml"が実行される戻るボタンで? – Paul

+1

'reviewInfo.xhtml'から移動した後に*戻る*ボタンで戻るボタンを押すと、戻るボタンは' POST accountDetails.xhtml'ではなく 'GET reviewInfo.xhtml'を再実行します。戻るボタンは実際には現在のリクエストを再実行しません。リフレッシュボタンはそれを行います。 PRGがなければ、リフレッシュボタンは途中でPOSTを再実行します。 – BalusC

+0

「PRGがなければ、**バック**ボタンは途中でPOSTを再実行したでしょうか? – Paul

関連する問題