web-dev-qa-db-ja.com

更新時にフォームデータの再送信を求めるブラウザを停止しますか?

POSTでフォームを送信しています。フォームを送信しますが、すべては順調ですが、送信後にフォームが移動する新しいページを再ロードしようとすると、「データを再送信しますか」というメッセージ(FireFox)が表示されます。他のブラウザーでも発生する可能性がありますが、わかりません。

このメッセージのポップアップを停止して、ページを更新できるようにする方法を知っている人はいますか。実稼働環境には適していません。ユーザーは同じフォームを2回送信できます。

36
Bojangles

POST-Redirect-GETパターンを使用する必要があります。

GETリクエストへのリダイレクトでフォームを応答させます。
この方法では、ユーザーがページを更新すると、GETのみが再送信されます。

48
SLaks

Urlにパラメーターがない場合は、これを使用します-

window.location = window.location.href+"?rnd="+Math.random();

または、これを使用します-

window.location = window.location.href+"&rnd="+Math.random();

それが動作します。

1
Ashwin

ブラウザがこれを行うと、セキュリティ違反になります。クレジットカード処理の例では、サイトはユーザーに2回請求する場合があります。

唯一の方法は、アドレスバーに移動してEnterキーを押すことです。新しいリクエストが発生します。

0
Madhur Ahuja