2016-03-17 104 views
0

我想抓住用戶鍵入的user_ID和密碼並將其發送到服務器。這是我的Javascript代碼;無法通過AJAX呼叫發送登錄信息請求

<script> 

    function Display(){ 
     var ID = document.getElementById("user_id").value; 
     document.getElementById("user_id_D").innerHTML = ID; 

     var pass = document.getElementById("password_id").value; 


     var login = "login:" + ID + "-" + pass; 
     document.getElementById("password_id_D").innerHTML = login; 

     var request = new XMLHttpRequest(); 
     request.onreadystatechange = function(){ 
      if(this.readyState === 4){ 
      if (this.status === 200) { 
       if (this.responseText !== null) { 
      } 
      } 
     } 
     }; 
     request.open("GET",login, true); 
     request.send(null); 

     } 
    </script> 

HTML(引導):

 <form class="form col-md-12 center-block"> 
     <input type="text" id="user_id" placeholder="User ID"> 
     <input type="password" id="password_id" placeholder="Password"> 
     <button onclick="Display()">Sign In</button> 
     </form> 

當我寫我的ID和密碼,然後按簽到按鈕,瀏覽器給我一個錯誤 「NS_ERROR_UNKNOWN_PROTOCOL:」 在行 「request.open(」 GET 「,登錄,是);」 ...可能的原因是什麼?

+0

請求的網址是什麼......應該是什麼數據? –

+0

注意:登錄請求不應該是一個獲取請求,應該是一個職位 –

+0

我已經嘗試使用POST以及同樣的錯誤。我的服務器代碼正在Python上運行。如果我寫「request.open(」GET「,」hello「,true);」 ,我在python服務器收到請求「Hello」,但是當我嘗試發送登錄(login =「login:」+ ID +「 - 」+ pass時,它給了我那個錯誤 –

回答

0

請檢查該代碼

request.open("GET",login, true); 

第二個參數是有效的URI。您也可以通過http POST方法中的url或數據附加登錄信息。

+0

但是這和我寫的一樣。什麼是新的? –

+1

我的意思是第二個參數是一個有效的url,協議(http或https)就像:'http:// example'。所以你的代碼應該是:'request.open(「GET」,「http ://example.com/login-path「,true);' –

0

我做了它的工作,其實我在登錄請求之前缺少「/」。現在我發送

request.open("GET",login, true); 

我的'登錄'請求是;

var login = "/login:" + ID + "-" + pass;