国民人妻西野翔ed2k:关于ajax中send方法位置问题

来源:百度文库 编辑:中科新闻网 时间:2024/04/27 21:46:16
<?xml version="1.0" encoding="utf-8" ?>
<s>
<a>ss</a>
</s>
xml文件
---------------------------
<script type="text/javascript">
var xhr=null;
function createxhr()
{
xhr=new ActiveXObject("Microsoft.XMLHTTP")
xhr.open("get","x.xml",true)
xhr.onreadystatechange=function()
{
if(xhr.readyState==4)
{
alert(xhr.responseText);
alert(xhr.responseXML.getElementsByTagName("a")[0].firstChild.nodeValue);
}
}
xhr.send("");
}
createxhr();
</script>

请问上面代码为什么把xhr.send("");放到onreadystatechange之前就不会alert(xhr.responseText); 了?
是readystate状态没有变了?
就是
<script type="text/javascript">
var xhr=null;
function createxhr()
{
xhr=new ActiveXObject("Microsoft.XMLHTTP")
xhr.open("get","x.xml",true)
xhr.send("");
xhr.onreadystatechange=function()
{
if(xhr.readyState==4)
{
alert(xhr.responseText);
alert(xhr.responseXML.getElementsByTagName("a")[0].firstChild.nodeValue);
}
}

}
createxhr();
</script>

这样就不会alert();另外为何无法得到xml内标签值
呢?
xhr.send("");

为何放到onreadystatechange前
readyState就不变呢?
只要send("") readyState就会变啊!
但是放前面就不变了?

放到onreadystatechange之前 onreadystatechange就不会接收值了
alert(xhr.responseXML.getElementsByTagName("a")[0].chiledNodes[0].nodeValue);
这样试下?