2016-05-09 47 views
0
<input type="text" onkeyup="checkPin();" id="pin"/> 

大家好我是在Django新,我試圖通過意見def pincheck():訪問數據庫,我由JavaScript嘗試這一點,但療法是在出現了錯誤。Ajax調用

function checkPin(){ 
    var pin_code=document.getElementById("pin").value; 
    if(pin_code.length == 6){   
     if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari 
      xmlhttp=new XMLHttpRequest(); 
     } 
     else{// code for IE6, IE5 
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     xmlhttp.onreadystatechange=function(){ 
      if (xmlhttp.readyState==4 && xmlhttp.status==200){ 
       document.getElementById("innerHTML").innerHTML=xmlhttp.responseText; 
      } 
      else if (request.status === 404) { 
       alert("Oh no, it does not exist!"); 
      } 
      else if (request.status === 403) { 
       alert("Oh no, it does not exist!"); 
      } 
     } 
     var data = "{% csrf_token %}"; 
     xmlhttp.setRequestHeader('X-CSRF-Token', data); 
     xmlhttp.open("POST", "../../sellerprofile/ajaxcall/"); 
     xmlhttp.send(); 
    } 
} 

這是我的javascript請糾正我,如果錯了。 誤差Uncaught InvalidStateError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.

+3

使用jQuery ..它是簡單,乾淨..容易.. –

+0

我不能使用jQuery的.. –

+1

我必須使用香草js –

回答

2

與您的代碼的問題是要設置頁眉沒有真正打開,這就是爲什麼它給InvalidStateError的連接。 正確的做法是首先打開連接,然後設置標題。 以下是您修改的代碼。

function checkPin(){ 
var pin_code=document.getElementById("pin").value; 
if(pin_code.length == 6){   
    if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
    } 
    else{// code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.onreadystatechange=function(){ 
     if (xmlhttp.readyState==4 && xmlhttp.status==200){ 
      document.getElementById("innerHTML").innerHTML=xmlhttp.responseText; 
     } 
     else if (request.status === 404) { 
      alert("Oh no, it does not exist!"); 
     } 
     else if (request.status === 403) { 
      alert("Oh no, it does not exist!"); 
     } 
    } 
    var data = "{% csrf_token %}"; 
    xmlhttp.open("POST", "../../sellerprofile/ajaxcall/"); 
    xmlhttp.setRequestHeader('X-CSRF-Token', data); 
    xmlhttp.send(); 
} 

}

我希望這將工作;)

+0

非常感謝你給我這個信息......現在它的工作正常...... :) –