我为我的网络项目使用了很多Ajax但是现在我想完全理解它。我遇到了这个问题。
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
document.getElementById("demo").innerHTML = xhttp.responseText;//get response
}
};
xhttp.open("GET", "ajax_info.txt", true);
xhttp.send();//send request
}
查看代码。在我的逻辑中,我认为我们必须首先发送请求然后稍后得到响应。 那么为什么在ajax代码中我们在发送请求之前得到响应。 我在这里错过了什么吗? 提前谢谢!
答案 0 :(得分:0)
这部分:
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
document.getElementById("demo").innerHTML = xhttp.responseText;//get response
}
};
定义了一个回调函数(异步)。仅当xmlhttprequest
对象更改状态(您将其附加到onreadystatechange
事件)时才会调用此函数。您需要在进行调用之前定义回调函数(xhttp.open
),否则它将不知道该怎么做,但代码本身在xmlrequestobject
的状态发生变化之前不会运行。