2017-08-02 21 views
0

POST経由でフォームを送信しています。私はフォームを提出し、すべてがうまくいきますが、フォームが提出された後に新しいページをリロードしようとすると、「あなたはデータを再送信しますか?」というメッセージ(FireFox)が表示されます。他のブラウザでも起こる可能性がありますが、わかりません。フォームがサブミットされた後にページがリフレッシュされない

+0

ここで実際の問題は何ですか? – Takarii

答えて

0

あなたはこのようにフォームからデータを取得した後javascriptのリロードを使用することができますあなたのための

<script > window.location.reload(1);</script> 

それとも私の提案は、データを送信するためのAJAXを使用して、その後、ちょうどこのようにページをリロード:

$("#form").submit(function(e) { 
     var url = "yourURL"; 

     $.ajax({ 
      type: "POST", 
      url: url, 
      data: $("#form").serialize(), 
      success: function(data){ 
       window.location.href = url; 
      }, 
      beforeSend: function() { 
       $('#loader').show(); 
       $('#button').hide(); 
      }, 
      error: function (request, status, error) { 
       alert(request.responseText); 
      } 
    }); 

     e.preventDefault(); 
    }); 

このスニペットはあなたのURLにデータを送信し、データを取得した後、あなたの既存のURLになることができるあなたのURLにページを正常にリロードします。

これを行うと、ブラウザに再送データアラートが表示されません。

0

あなたがフォームデータをフォームと同じページにPOSTするので、データを再送信するかどうか尋ねるときにリフレッシュするように頼んでいます。

これは、最新のブラウザではPOSTデータをページに再送信できる共通の機能です。人々があなたのフォームを2回提出しないように、これを防ぐべきです。これを達成するには、データを処理するために使用する新しいページを作成し、必要なページへのリダイレクトを処理します。

form.php --[POST DATA]--> process.php (redirect) ---> form.php

これは、プロセスのページにユーザーを送信し、フォームデータを処理し、一度バックフォームページにリダイレクト完了します。ユーザー側では、リダイレクト以降、プロセスページは表示されません。

関連する問題