web-dev-qa-db-ja.com

ブラウザの[戻る]ボタンがクリックされた後のフォームの再送信を防ぐ

Webの初期の頃は、Backをクリックした後にブラウザのSubmitボタンをクリックすると、フォームが再送信される可能性があり、たとえば二重購入になってしまうという問題がありました。

これはもはや問題ではないようです。どのように修正されましたか?個々のサイトはこれを回避する必要がありますか、それともブラウザは変更されましたか?

2
Roger Dahl

これを防ぐ1つの方法は、 POST/Redirect/GETパターン を使用することです。

POSTリクエストを受信した後に200を直接送信する代わりに、サーバーは303(または302)リダイレクトを代わりに送信します。クライアントはそれに従い、(GETを介して)200を取得します。このページを更新すると、前回のPOSTではなく、最後のGETが繰り返されます。

実装に関する質問については、スタックオーバーフロータグ " post-redirect-get "を参照してください。

4
unor

フォームデータのjavascript POSTに続いてjsリダイレクトを使用しました。 [戻る]ボタンを使用しても、これらのフォーラムは再送信されません。

0
nemmy