2015-01-05 80 views
0

我正在尋找一種方法來防止發送不變的POST請求。 我知道只要按下一次就可以將「發送」按鈕變灰,但是我正在尋找一種方式,可能是一個HTTP標頭,如果它沒有任何更改的字段,它只會忽略該請求。防止不變POST請求發送

+0

您可以將參數添加到您的請求(標​​志),並在你的web服務處理基於標誌的要求。如果標誌被設置,如果沒有設置執行代碼,則不執行代碼。 – brso05

+4

你有沒有試過[Post-Redirect-Get pattern](http://en.wikipedia.org/wiki/Post/Redirect/Get)? –

+1

查看[HTTP ETags](http://en.wikipedia.org/wiki/HTTP_ETag) – charliebrownie

回答

0

您可以使用jQuery中的.serialize()方法保存上次提交併將此值與新值進行比較。

事情是這樣的:

var lastSubmit; 
$("#myForm").submit(function(event) { 
    event.preventDefault(); 
    var newSubmit=($(this).serialize()); 
    if (lastSubmit==newSubmit) { 
     alert("Don't submit") 
    } else { 
     alert("Submit") 
     lastSubmit=newSubmit; 
    } 

}); 

我寫這個的jsfiddle例如:http://jsfiddle.net/uxjynnhj/2/

0

您可以保留客戶端上一次請求的副本,並將新請求與它進行比較。如果他們是一樣的,什麼都不要做。它可能位於JavaScript對象中,或者如果您希望它能夠在頁面刷新過程中存在,也可以位於本地存儲或cookie中。