2012-04-28 9 views
-1

変数xmlhttp=new XMLHttpRequest()が初期化されています。次のコード:私はajaxの理解できないコード

function makerequest(serverPage,objID){ 
      var obj=document.getElementById(objID); 
      xmlhttp.open("GET",serverPage); 
      xmlhttp.onreadystatechange = function(){ 
       if(xmlhttp.readyState == 4 && xmlhttp.status ==200){ 
        obj.innerHTML = xmlhttp.responseText; 
       } 
      } 
      xmlhttp.send(null); 
     } 

私はそれがxmlhttp.readyState == 4を追加し、なぜ私は、もし状態で、AJAXの新しい学習者午前申し訳ありません。関数の最後にxmlhttp.send(null);を使用してそれらを削除することができます。ありがとうございました。

答えて

0

あなたが生成するajaxリクエストを送信したいので、getを使用しているので、nullは受け入れられる引数です。 postを使用する場合は、sendメソッドでクエリー文字列を渡す必要があります。 More here

readyState条件を削除すると、ページがまだ準備されていないため、何も返さないajaxになります。詳細hereを参照してください。

編集:私は別の(引数)にヌルのparamを変更すると、コードがなぜ働くことができない

xmlhttp.open("POST","ajax_test.asp",true); 
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
xmlhttp.send("fname=Henry&lname=Ford"); 
+0

:POSTのサンプル引数メソッドを送信しますか? – user1345545

+0

@ user1345545 ajaxでGETリクエストを送信している場合、send()メソッドは引数を一切必要としません。 POSTリクエストを送信するときにパラメータを置くだけでよく、そのパラメータは投稿するデータのクエリ文字列(名前の値のペア)でなければなりません。私の編集されたポストを参照してください。 – Mansfield

関連する問題