2012-04-28 69 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); 
     } 

對不起,我是阿賈克斯的新學員,在if條件,爲什麼它添加xmlhttp.readyState == 4。在功能的結尾有使用xmlhttp.send(null);我可以刪除它們。謝謝。

回答

0

那麼,你想發送你生成的ajax請求,所以既然你使用get,null是一個可以接受的參數。如果你使用post,你應該在發送方法中傳遞查詢字符串。更多here

如果你刪除了readyState條件,那麼你可能會因爲頁面還沒有準備好而沒有返回ajax。查看更多here

編輯:對於POST樣品參數發送方法:

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

當我改變了空參數去另一個(ARG),代碼不能工作,爲什麼? – user1345545 2012-04-28 04:23:36

+0

@ user1345545如果您使用ajax發送GET請求,則send()方法根本不需要參數。您只需在發送POST請求時將參數放在那裏,並且該參數應該是您希望發佈的數據的查詢字符串(名稱值對)。看到我編輯的帖子。 – Mansfield 2012-04-28 13:43:27