メールフォームの重複送信対策
メールフォームの完了メールが重複して何度も送られてくる問題についてはブログ(*1)に書いた。
(*1) [備忘録]メールフォーム:完了メールが何度も送信される問題。。
ここでは、その対策としてリロードされても良いように、差し支えない(メール送信スクリプトのない)URLに書き換える方法を。
javaScript の「history.pushState()」メソッドで書き換える
history.pushState()メソッドは、「ブラウザのセッション履歴を制御するメソッド、、とのことだが、簡単に言うと(ここでの使い方は)「ブラウザのURLを書き換える」ことができる。
これを使って、当たり障りのない(メール送信スクリプトのない)URLに書き換えてやれば良い。
下記例は「complete.html」というテキスト表示のみのHTMLファイルに書き換え。
history.pushState({}, ”, ‘complete.html’);
これでフォームを送信すると、表示内容はそのままにブラウザに表示されるURLだけが
https://xxxxxxx/complete.html に書き換わる。
なので、この状態でリロードすると、当たり障りない complete.htmlの表示に切り替わる。(もちろん完了メールの再送もない!)
ホームページ制作のこと、ホームページの運営でわからないことや困っていることがありましたら、「株式会社アットライズ」までお気軽にご相談ください。
株式会社アットライズのホームページはこちら
[…] ロードされても良いように、差し支えないURLに書き換える。 → 今回、この方法で対策しました。 具体的な対策方法 > [備忘録]ブラウザに表示されるURLを書き換える方法 […]