POSTでフォームを送信しています。フォームを送信しますが、すべては順調ですが、送信後にフォームが移動する新しいページを再ロードしようとすると、「データを再送信しますか」というメッセージ(FireFox)が表示されます。他のブラウザーでも発生する可能性がありますが、わかりません。
このメッセージのポップアップを停止して、ページを更新できるようにする方法を知っている人はいますか。実稼働環境には適していません。ユーザーは同じフォームを2回送信できます。
POST-Redirect-GETパターンを使用する必要があります。
GETリクエストへのリダイレクトでフォームを応答させます。
この方法では、ユーザーがページを更新すると、GETのみが再送信されます。
Urlにパラメーターがない場合は、これを使用します-
window.location = window.location.href+"?rnd="+Math.random();
または、これを使用します-
window.location = window.location.href+"&rnd="+Math.random();
それが動作します。
ブラウザがこれを行うと、セキュリティ違反になります。クレジットカード処理の例では、サイトはユーザーに2回請求する場合があります。
唯一の方法は、アドレスバーに移動してEnterキーを押すことです。新しいリクエストが発生します。