1. ホーム
  2. forms

[解決済み] フォームの再送信を防止する

2022-10-05 23:17:47

質問

1ページ目はHTMLフォームが含まれています。2ページ目 - 提出されたデータを処理するコード。

ページ 1 のフォームが送信されます。ブラウザは2ページ目にリダイレクトされます。ページ2は送信されたデータを処理します。

この時点で、2ページ目が更新されると、"Confirm Form Resubmission"のアラートがポップアップ表示されます。

これを防ぐことはできますか?

どのように解決するのですか?

ここでは、2つのアプローチをとっています。

方法1: AJAX+リダイレクトを利用する

この方法では、ユーザーがページ1を表示したまま、JQueryなどを使用してバックグラウンドでフォームをページ2に投稿します。投稿に成功したら、ブラウザをPage2にリダイレクトします。

方法2: 投稿+自分へのリダイレクト

これはフォーラムでよく使われる手法です。ページ1のフォームはデータをページ2にポストし、ページ2はデータを処理して必要なことを行い、その後自分自身にHTTPリダイレクトを行います。この方法では、ブラウザが記憶する最後のアクションはページ 2 の単純な GET であり、F5 したときにフォームが再送信されることはありません。