2

私の MVC スプリング アプリケーションでは、post メソッドを使用してフォームをページに送信し、いくつかのパラメーターを使用して検索を実行します。検索結果はリストであり、すべてのエントリについて詳細ページに移動できます。正常に動作しますが、ユーザーがブラウザの戻るボタン (または Javascript) で結果ページに戻ろうとすると、「ページの期限切れ」エラーが発生します。ページを更新すると、投稿の送信が再実行され、正常に動作します。

このエラーを防ぐために追加しました

response.setHeader("Cache-Control", "no-cache");

検索コントローラーに接続すると、Safari と Firefox ですべて正常に動作しますが、IE (8 と 9) で Web アプリケーションを実行しようとすると、同じ「ページの期限切れ」エラーが発生します。

詳細ページにアクセスして、エラーなしで戻ってくる正しい方法は何ですか?

御時間ありがとうございます!
アンドレア

4

2 に答える 2

3

正しい方法は、POST の代わりに GET を使用することです。検索は、サーバー上で何の変化も引き起こさない冪等操作であり、そのような操作は GET で行う必要があります。

于 2012-06-20T17:58:14.033 に答える
2

POST リクエストを期限切れにしないことは、 POST のアイデアそのものを損なうようです:

RFC 2616 に従って、POST メソッドは、リクエストが非べき等であるコンテキストで使用する必要があります。つまり、ブログ投稿へのコメントの送信や投票など、リクエストが実行されるたびにサーバーの状態が変化します。オンライン投票。

DIV代わりに、結果を表示する基礎となるページを更新しないオーバーレイを使用して、詳細レコードを表示する方法を再構築します。多くの最新の Web アプリでは、[戻る] ボタンを使用すると、ページ フローに問題が発生する可能性があります。

于 2012-06-20T14:15:36.443 に答える