5

私のアプリケーションは、応答ヘッダーを介してブラウザーでのキャッシュを無効にし、Post-Redirect-Get パターンを使用して、戻るボタンを有効にして現在のページを「再取得」します。
ただし、Firefox 12 と IE 8 でこれを再テストすると、期待していた結果 (または以前に IE 6 で見た結果) が表示されません。

[戻る] ボタンを選択すると、ブラウザーがリダイレクトされた要求 (Get) ではなく、元の要求 (Post) を実行しようとしていることがわかります。Firebug のネットワーク タブでリクエストを見ると、次のように表示されます。

リダイレクト後の取得

ブラウザが Post と Get を同じリクエストとして扱っているように見えるため、戻るボタンを選択すると Post が再送信されます。

戻るボタンの結果

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

4

1 に答える 1

4

それはうまくいっています。戻るボタンは、最初のスクリーンショットにはリストされていない「POST accountDetails.xhtml」のにリクエストを再実行しますが、2 番目のスクリーンショットによれば、明らかに (そして論理的に) 「GET accountDetails.xhtml」です。あなたは明らかに、そのビューに関連付けられた Bean にいるか、いくつかのチェックを行って「registrationWelcome.xhtml」にリダイレクトしているフィルターにいます。最初のスクリーンショットの「POST accountDetails.xhtml」は、「reviewInfo.xhtml」にリダイレクトされた現在のリクエストです。

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

于 2012-05-31T19:05:52.143 に答える