日期:2014-05-19  浏览次数:20393 次

XMLHTTP的一个问题
test.aspx:

<head   runat= "server ">
        <title> 无标题页 </title>

</head>
<body>
        <form   id= "form1 "   runat= "server ">
        <div   id= "texts ">
                <asp:Button   ID= "Button1 "   runat= "server "   Text= "Button "   OnClick= "Button1_Click "   />
        </div>
        </form>
        <script>
          function   send()
{
var   objxml=   new   ActiveXObject( "Microsoft.XMLHTTP ");  
objxml.open( "get ", "test2.aspx ");
objxml.send();

alert(objxml.responseText)
objxml.abort();
}
          send();

        </script>
</body>
</html>

网页第一次运行时IE脚本显示错误:完成该操作所需的数据还不可以使用

如果刷新一下,数据就读出来了
该怎么解决

------解决方案--------------------
因为你的处理涵数根本没写对..
试下objxml.send(null);
------解决方案--------------------
var objxml= new ActiveXObject( "Microsoft.XMLHTTP ");

objxml.onreadystatechange = function()
{
if(objxml.readyState == 4)
{
if(objxml.status == 200 || objxml.status == 0)
{
alert(objxml.responseText);
}
}
}

objxml.open( "get ", "test2.aspx ");
objxml.send();
------解决方案--------------------
你得指定是同步还是异步
如果是同步,就能照你的方式,send之后,会等待response,其间不能干别的
如果是异步,send之后,要等objxml.onreadystatechange 这个事件回来,readyState == 4才表示已经完全返回了。在等待返回之前,你可以做别的操作