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

请问我的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
} 

试试把。......