2016-03-17 63 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;