如何使用AJAX/Javascript打印响应?
我正在学习如何使用AJAX/Javascript打印响应?,javascript,ajax,Javascript,Ajax,我正在学习AJAX,并试图将我的文件“info.txt”的内容显示在带有id的div演示中。然而,它总是返回空白。不幸的是,为了测试这一点,您必须在实际的服务器(我是)上尝试这段代码,并且必须提供您自己的“info.txt”文件。我请提供一个标准的javascript答案(非JQuery),谢谢! 函数loadDoc(){ var xhttp=newXMLHttpRequest(); xhttp.open(“GET”、“info.txt”、true); xhttp.send(); documen
AJAX
,并试图将我的文件“info.txt”的内容显示在带有id
的div
演示中。然而,它总是返回空白。不幸的是,为了测试这一点,您必须在实际的服务器(我是)上尝试这段代码,并且必须提供您自己的“info.txt”文件。我请提供一个标准的javascript答案(非JQuery),谢谢!
函数loadDoc(){
var xhttp=newXMLHttpRequest();
xhttp.open(“GET”、“info.txt”、true);
xhttp.send();
document.getElementById(“demo”).innerHTML=xhttp.responseText;
}
XMLHttpRequest对象
更改内容
传递给xhttp.open的true
表示您的请求是异步的,这意味着它不会等待响应
您需要删除该true
(未推荐)或在收到响应时正确设置回调:
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.open("GET", "info.txt", true);
xhttp.onreadystatechange = function () {
if (xhttp.readyState === XMLHttpRequest.DONE && xhttp.status === 200) {
document.getElementById("demo").innerHTML = xhttp.responseText;
}
};
xhttp.send();
}
您的问题是AJAX中的第一个“A”,这意味着它是异步的。您必须注册回调来处理响应。从这里开始:啊。。。这就是我没有得到的。谢谢你,杰克。请您解释一下为什么send()
在onreadystatechange()
之后?@GovindRai,因为您使用onreadystatechange
定义了一个回调,在发生任何更改时运行该回调……或者在这种情况下,需要检查它是否完成(DONE
)。一个简单的想法是,如果你让别人帮你去商店,用这些东西做点什么。你要告诉他们你想要什么(打开
),以及他们回来后该怎么办(onreadystatechange
),然后再在他们去商店的路上发送(发送
)。