日期:2014-05-20  浏览次数:20713 次

请问我的xmlHttp.readyState为何没有值??
<script>
function createXmlHttp() 

var A=null; 
try 

A=new ActiveXObject("Msxml2.XMLHTTP") 
}catch(e)

try 

A=new ActiveXObject("Microsoft.XMLHTTP") 
}catch(oc)

A=null 

}

if( !A && typeof XMLHttpRequest != "undefined" ) 

A=new XMLHttpRequest() 

return A 
}
function complete()
{
alert(xmlHttp.readyState); if((xmlHttp.readyState == 4) && (xmlHttp.status == 200))
{
alert('aaaa');
var middlename=xml.responseXML.getElementsByTagName("tname"); 
var middleid=xml.responseXML.getElementsByTagName("tid"); 
var mname=new Array();
var mid=new Array();
for(var i=0;i<middlename.length;i++)
{
mname[i]=middlename[i].firstChild.data;
mid[i]=middleid[i].firstChild.data;

}
if(Type!=middle.value)
{
for(child in middle.options)
{
middle.remove(child);
}
}
for(child in small.options)
{
small.remove(child);
}

for(i=0;i<mid.length;i++)
{
op=document.createElement("option");
middle.options.add(op);
op.innerHTML=mname[i];
op.value=mid[i];
}
}




}

function getType(a)
{
var Type = a.value;
var middle = document.getElementById('middle');
var small = document.getElementById('small');
var xmlHttp = createXmlHttp();
xmlHttp.onreadystatechange = complete;
xmlHttp.open('GET','<%=request.getContextPath() %>'+'/do/getType?action=findMiddleByBig&Type='+Type,true); 
xmlHttp.send(); 
}
</script>
以上代码中红的那句alert(xmlHttp.readyState)什么也弹不出来,但后台的ACTION己经执行了,值也获得了。
为什么呢?

------解决方案--------------------
Sorry !
上面错了。

你的A 不是全局的.
xmlHttp 也不知怎么来的

这样改把。
<script>
var xmlHttp;
function createXmlHttp()
{
var A=null;
try
{
A=new ActiveXObject("Msxml2.XMLHTTP")
}catch(e) 
{
try
{
A=new ActiveXObject("Microsoft.XMLHTTP")
}catch(oc) 
{
A=null
}


if( !A && typeof XMLHttpRequest != "undefined" )
{
A=new XMLHttpRequest()
}
xmlHttp = A;
return A


试试把。......