我在从页面上的文本框事件调用的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;
}
}
}
答案 0 :(得分:0)
您应该将您的请求对象命名为XMLHttpRequest以外的其他对象。它可能会覆盖浏览器中的XMLHttpRequest对象。从而给你错误。
XMLHttpRequest = CreateXmlHttpObject(changeOfState);
像这样分配XMLHttpRequest变量实际上是使用全局范围。您应该使用var和另一个变量名
var req = CreateXmlHttpObject(changeOfState);
希望这澄清。