我写了下面简单的JavaScript代码XmlHttpResponse.responseText何时会被来自服务器的响应填充?
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head> <title>ajax</title> </head>
<body>
<script type="text/javascript">
var xhr = new XMLHttpRequest();
var url = "http://localhost/javascript/test.php";
xhr.open("GET", url);
alert(xhr);
xhr.send(null);
xhr.onreadystatechange = function() {alert("change");}
alert(xhr.responseText);
</script>
</body>
</html>
结果显示xhr.responseText是空的。 但下面的JavaScript代码工作正常。为什么?
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><title>ajax</title></head>
<body>
<script type="text/javascript">
var xhr = new XMLHttpRequest();
var url = "http://localhost/javascript/test.php";
xhr.open("GET", url);
xhr.send(null);
xhr.onreadystatechange =
function() {
if (xhr.readyState == 4) alert(xhr.responseText);
};
</script>
</body>
</html>
以下是简单的PHP代码:test.php的
<?php
echo date("F j, Y, H:i:s");
我将** function(){alert(“change”);} **添加到onreadystatechange事件中,所以当readystate更改时,会弹出一个警告窗口,然后单击OK,然后再次准备好更改,另一个警报窗口弹出,我再次点击它。点击4次后,readystate == 4,然后我应该得到responseText。 – PeopleMoutainPeopleSea 2011-03-08 02:47:39
完全没有!因为,在附加该函数之后立即执行该行: alert(xhr.resonseText); 并且永远不会再回到那个位置,如果在点击四次之后,您希望执行该行,则必须将它放在附加到onreadystatechanged的函数的{}之间。 一切顺利! – r0nny1l 2011-03-08 06:27:52