Ajax多个XMLHttpRequests-如何使用?

Ajax多个XMLHttpRequests-如何使用?,ajax,ajax-request,Ajax,Ajax Request,我不熟悉Ajax。我写了以下内容,但似乎无法找出问题所在。我试图调用多个对web服务器的HTTP请求调用。我在网上查看了一些例子,并得出以下结论 嗯,我的代码因为一些问题而无法工作。有人能帮我修复这个代码吗 function getCurBid(bidID){ var XMLHttpRequestObject = false; if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Oper

我不熟悉Ajax。我写了以下内容,但似乎无法找出问题所在。我试图调用多个对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(); 
   }
}

你需要更像这样的东西:

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(); 
   }
}

你有JavaScript调试工作吗?没有它,你永远也不会知道出了什么问题。我包括console.log??在整个代码中,但没有太多帮助。实际的调试会更有用-在结果出现之前,您可以通过运行结果处理程序代码发现您的特定问题。我使用的是Chrome控制台屏幕。同样,没有太多关于错误的细节。大多数错误不会产生任何错误。请在代码中插入一个断点,体验实际的JavaScript调试,无需进一步麻烦因此,基于以下代码,我将在哪里调用ajax_getBid.cfm?ida+bidID:XMLHttpRequestObject.openGET,ajax_getBid.cfm?ida=+bidID,true;{如果XMLHttpRequestObject.readyState==4&&XMLHttpRequestObject.status==200{objID.innerHTML=XMLHttpRequestObject.responseText;}我注意到了一些错误。。。您的代码在IE兼容视图中不起作用。有什么建议吗?我需要更多关于什么不起作用的信息。错误是什么?您可以尝试将.onreadystatechange更改为.onload,但正如我所说,需要更多信息您的代码按原样使用。基本上,整数数据是通过ColdFusion从数据库表返回的。ie.[XMLHttpRequestObject.openGET,ajax_getBid.cfm?ida=+bidID,true;]除了在ie兼容模式下,您的代码工作正常。我没什么能给你的了。我认为问题可能在这里:[//IE6的代码,IE5 XMLHttpRequestObject=new ActiveXObject Microsoft.XMLHTTP;]打开开发工具f12,刷新页面,然后再次运行。查看控制台是否记录了任何相关错误