gpt4 book ai didi

javascript - XmlHttp Response.responseText 什么时候会填充来自服务器的响应?

转载 作者:行者123 更新时间:2023-11-30 09:05:42 25 4
gpt4 key购买 nike

我写了以下简单的 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);
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");

最佳答案

当服务器响应时,浏览器将触发对象的 onreadystatechanged 事件,导致你附加到它的函数被触发,你需要在第一个例子中做的是把这一行:

alert(xhr.responseText);

在附加到 onreadystatechanged 事件的函数中。否则浏览器将在发送请求后立即处理该行。
另外,必须检查readystate是否为4(4:request finished and response is ready),同样值得检查一下status是否为200,表示一切正常。

关于javascript - XmlHttp Response.responseText 什么时候会填充来自服务器的响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5217378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com