我使用各种在线资源编写了这段代码,但我似乎无法弄清楚最后一部分。
function loadajax (event) {
event.preventDefault();
xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if(xhr.status == 200)
document.ajax.dyn="Received:" + xhr.responseText;
else
document.ajax.dyn="Error code " + xhr.status;
}
};
xhr.open('GET', this.href, true);
var content = document.getElementsByTagName('article')[0];
content.innerHTML = xhr.responseText;
}
在我需要向页面添加内容之前,它似乎有效。确实content.innerHTML = xhr.responseText;
没有任何回报。我收到一个简单的HTML文件,如何在我的页面中发布?我做错了什么?
感谢您的帮助!
答案 0 :(得分:2)
ajax调用是异步的。如果您将content.innerHTML = xhr.responseText;
行移动到onreadystatechange
函数中,它将会起作用:
function loadajax (event) {
event.preventDefault();
xhr = new XMLHttpRequest();
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4)
{
if(xhr.status == 200)
document.ajax.dyn="Received:" + xhr.responseText;
content.innerHTML = xhr.responseText;
else
document.ajax.dyn="Error code " + xhr.status;
}
};
xhr.open('GET', this.href, true);
var content = document.getElementsByTagName('article')[0];
}
答案 1 :(得分:1)
将您的content.innerHTML置于状态200条件下。
您只是在内容确实存在之前将值分配给内容。在ajax从服务器获取它之前。