2

以下のようなシナリオを考えてみましょう:

  1. Symfony2 はエンティティの削除フォームを提供します
  2. ユーザーが削除ボタンを選択
  3. Symfony2 コントローラはエンティティを削除し、ユーザーを確認ページにリダイレクトします
  4. ユーザーがブラウザの戻るボタンを選択すると、記録と削除フォームが再び表示されます
  5. [削除] ボタンを選択すると、既に削除されているため、例外がスローされます

戻るボタンと再送信を避ける最善の方法は何ですか?

この質問のコントローラーはこちらと同じです

4

1 に答える 1

4

すべてのデータ変更要求は、POSTメソッドを使用して実行する必要があります — またはPUTPOSTまたはDELETERESTful な方法で実行している場合。このようなリクエストの後、ページにリダイレクトしGETます。ユーザーが [戻る] ボタンを押すと、要求を再送信する必要があり、望ましくない結果が生じる可能性があることを示す警告がブラウザーに表示されます。ユーザーが要求の再送信を主張する場合、彼女は404もう存在しないものを処理しようとしているため、エラー ページが表示されるはずです。

于 2012-07-18T18:33:21.617 に答える