2017-08-31 92 views
1

我使用此代碼發送POST請求到我的服務器。出於某種原因,單擊該按鈕將發送兩個POST請求。第一個發送爲/register/username/password。第二個發送到/register。問題是,第二個請求總是返回我404。應用程序發送POST請求兩次

我試圖解決它與postCount條件,但它仍然發送兩個請求。
看來,當在Windows或Android上使用chrome時,它忽略了它的404工作正常。問題是,當使用mac或iOS它引發我「無法POST /註冊」(因爲404)。

This is the link to the app in Heroku

舉例雙崗REQ日誌:

2017-08-31T11:36:18.896946+00:00 app[web.1]: POST /register/O**R/pass 200 0.423 ms - 3 
2017-08-31T11:36:18.939530+00:00 app[web.1]: POST/404 0.770 ms - 140 

Req代碼:

var postCount = 0; 
$("#rgstnBtn").click(function() { 
    var password = $("#password").val(); 
    var username = $("#username").val(); 
    if(postCount === 0) { 
     if (username && password) { 
      $.post("/register/" + username + "/" + password, function (data) { 
       postCount++; 
       // console.log("hi"); 
       var status = data; 
       if (data === '500') { 
        location.reload(); 
        alert("username already exists"); 
       } else { 
        window.parent.location = "/item" 
       } 
      }); 
     } else { 
      refresh(); 
      alert('please insert valid user name and password'); 
     } 
    } 
    function refresh() { 
     setTimeout(function() { 
      location.reload() 
     }, 10); 
    } 
}); 
+0

看起來你很喜歡觸發頁面重新加載。我懷疑另一個POST發生在頁面加載的其他地方。 –

+0

您可以移動** $(「#rgstnBtn」)之外的刷新功能,單擊**功能並重試。 – Naveen

+0

對不起,這沒有幫助:( – 2bis

回答

0

好球員,我仍然不知道什麼是雙張貼的原因,但我用這個OP和問題解決了:

$("#rgstnBtn").attr('disabled', 'disabled'); 

感謝大家