2017-08-02 44 views
0

我必須通過POST表單提交。我提交表單,並且一切都很好,但是如果我嘗試重新加載表單提交後的新頁面,我會看到「您要重發數據」消息(FireFox)。它也可能發生在其他瀏覽器中,但我不確定。頁表格後不刷新的submited

+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(); 
    }); 

此片段將數據發送到您的網址,並在成功獲取數據後將網頁重新加載到您的網址,該網址可能是您現有的網址。

通過這樣做,你的瀏覽器不顯示重新發送數據警報。

0

從我明白了什麼(糾正我,如果我錯了)您發佈表單數據在同一頁面表單,所以當您刷新它問你是否要重新發送數據。

這是在現代瀏覽器中一個共同的特點,讓您重新發送POST數據到一個頁面。你應該防止這樣做,以免人們不要兩次提交表單。您可以通過創建一個用於處理數據的新頁面並將其處理後重定向到您想要的頁面來實現此目的。

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

這將發送用戶進程頁和處理表單數據,一旦完成重定向他們回到表單頁面。在用戶方面,他們因爲重定向而不會看到進程頁面。