0

我是阿贾克斯的新手。我写了以下内容,但似乎无法弄清楚它有什么问题。我正在尝试对 Web 服务器调用多个 HTTP 请求调用。我在网上查看了示例并想出了以下内容。

好吧,由于某些问题,我的代码无法正常工作。谁能帮我修复这段代码?

function getCurBid(bidID){
   var XMLHttpRequestObject = false;

   if (window.XMLHttpRequest)
   {
       // code for IE7+, Firefox, Chrome, Opera, Safari
       XMLHttpRequestObject = new XMLHttpRequest();
   }
   else if (window.ActiveXobject) 
   {
       // code for IE6, IE5
       XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
   }

   if(XMLHttpRequestObject)
   { 
       var objID = document.getElementById("curBid"+bidID); 

       XMLHttpRequestObject.open("GET","ajax_getBid.cfm?ida="+bidID,true);


       if (XMLHttpRequestObject.readyState == 4 && 
           XMLHttpRequestObject.status == 200) 
       { 
           objID.innerHTML = XMLHttpRequestObject.responseText; 
       } 

       XMLHttpRequestObject.send(); 
   }
}
4

1 回答 1

0

你需要更像这样的东西:

XMLHttpRequestObject.onreadystatechange = function() {
    if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) { 
           objID.innerHTML = XMLHttpRequestObject.responseText; 
    }
}

您需要将逻辑包装在事件处理程序中

因此,与您的脚本集成将是:

function getCurBid(bidID){
   var XMLHttpRequestObject = false;

   if (window.XMLHttpRequest)
   {
       // code for IE7+, Firefox, Chrome, Opera, Safari
       XMLHttpRequestObject = new XMLHttpRequest();
   }
   else if (window.ActiveXobject) 
   {
       // code for IE6, IE5
       XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
   }

   if(XMLHttpRequestObject)
   { 
       var objID = document.getElementById("curBid"+bidID); 

       XMLHttpRequestObject.open("GET","ajax_getBid.cfm?ida="+bidID,true);

       XMLHttpRequestObject.onreadystatechange = function() {
           if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) { 
               objID.innerHTML = XMLHttpRequestObject.responseText; 
           } 
       };

       XMLHttpRequestObject.send(); 
   }
}
于 2014-04-08T17:54:54.030 回答