请问我的xmlHttp.readyState为何没有值??

timeup 2008-05-16 11:27:18
<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己经执行了,值也获得了。
为什么呢?
...全文
223 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
timeup 2008-05-16
  • 打赏
  • 举报
回复
楼上的真牛人也,真的那么一改就好了!!!多谢了!!多谢了!!!原来各方法里并不能互相乱调变量!受教了,受教了。。。
Shine_Panda 2008-05-16
  • 打赏
  • 举报
回复
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
}

试试把。......
Shine_Panda 2008-05-16
  • 打赏
  • 举报
回复
function complete()
{
xmlHttp= A;
alert(xmlHttp.readyState); if((xmlHttp.readyState == 4) && (xmlHttp.status == 200))
.............

加一句. 试试...........
timeup 2008-05-16
  • 打赏
  • 举报
回复
function complete()
{
alert('exsist??')
if(!xmlHttp)
{
alert('no');
}
if(xmlHttp)
{
alert('yes');
}
alert(xmlHttp.readyState);

}
如果改成这样,那么exsist??这句可以弹出来,但下面的YES,NO,xmlHttp.readyState就一个都弹不出来了。
请问,这倒底咋回事呢?
timeup 2008-05-16
  • 打赏
  • 举报
回复
实际上是执行到 if((xmlHttp.readyState == 4) && (xmlHttp.status == 200))
这儿就停了,也不知道这时候xmlHttp还有没有。

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧