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

がhiすべて私はジャンゴで新しいですし、私は、ビューdef pincheck():してデータベースにアクセスしようとしていますし、私はjavascriptのことで、これをしようとしていますが、THERは、いくつかのエラーが発生しているです。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が間違っていれば私を修正してください。 エラーがあなたのコードの問題は、あなたが実際にそれがInvalidStateErrorを与えている理由です、接続を開くことなく、ヘッダを設定しているあるUncaught InvalidStateError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.

+3

使用jqueryの..それは.. ..私はバニラを使用する必要が –

+0

、簡単なクリーン..簡単です。 js –

+1

私はjqueryの使用することができませんでし –

答えて

2

です。 正しい方法は、最初に接続を開いてからヘッダーを設定することです。 以下は変更されたコードです。私はそれがうまく願っています

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

この情報を私に与えてくれてありがとう...今はうまくいっています:) –