页面上有多个xmlhttprequest

时间:2010-11-09 16:44:26

标签: javascript-events

我在从页面上的文本框事件调用的javascript代码中第二次使用新的XMLHttpRequest()时出错。 我的javascript从sql中找到文本条目的建议,我使用xmlhttprequest,当它是第一次时它确实很好但是当我在文本框中输入时我收到“typeerror:xmlhttprequest不是costructor”(此错误仅发生)在firefox)

这是我的代码 function fnNull(){}; function changeofstate(){    if(XMLHttpRequest.readyState == 4)            { 无论如何;

}  XMLHttpRequest.onreadystatechange = fnNull(); } function whentextchange(){    var WebURL =“这里的网址”;          XMLHttpRequest = CreateXmlHttpObject(changeOfState);          XMLHttpRequest.open(“GET”,WebURL,true);          XMLHttpRequest.send(NULL);          XMLHttpRequestt.abort();    }

}

function CreateXmlHttpObject(handler){

   var objXmlHttpReq = null;
   var Req = null;

               if (navigator.userAgent.indexOf("Opera")>=0)
               {                  
               return ;
              }
              if (navigator.userAgent.indexOf("MSIE")>=0)
              { 
               var strName="Msxml2.XMLHTTP";
               if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
               {
               strName="Microsoft.XMLHTTP";
               } 
              try
               {

               objXmlHttpReq=new ActiveXObject(strName);
               objXmlHttpReq.onreadystatechange = handler;

               return objXmlHttpReq;
              } 
              catch(e)
              {                
               return ;
               } 
               }
               if (navigator.userAgent.indexOf("Mozilla") >= 0) {
                 try
               {
                        if (Req == null) {
                      Req = new XMLHttpRequest();
                   }

                         Req.onload = handler;
                       Req.onerror = handler;
                       return Req;

                   }
                   catch (e) {
                       alert(e);
                   alert(Req.responseText)
                       alert(e);
                       return;
                   } 
               }

}

1 个答案:

答案 0 :(得分:0)

您应该将您的请求对象命名为XMLHttpRequest以外的其他对象。它可能会覆盖浏览器中的XMLHttpRequest对象。从而给你错误。

XMLHttpRequest = CreateXmlHttpObject(changeOfState);

像这样分配XMLHttpRequest变量实际上是使用全局范围。您应该使用var和另一个变量名

var req = CreateXmlHttpObject(changeOfState);

希望这澄清。