AJAX HTTP请求刷新内容

时间:2013-09-19 13:42:32

标签: javascript php ajax

为什么它一直说“loading ...”,而不是显示data.php的内容?

xmlhttp = new XMLHttpRequest();             
function getdata () {
    xmlhttp.onreadystatechange = function () {
        if(xmlhttp.readyState = 4 && xmlhttp.status == 200) {
            document.getElementById('data').innerHTML = xmlhttp.responseText;
        } 
        else {
            document.getElementById('data').innerHTML = "loading...";
        }
    }
    xmlhttp.open("GET", "data.php", true);
    xmlhttp.send();
}

2 个答案:

答案 0 :(得分:0)

我不知道为什么你总是得到“正在加载”......但你错过了比较运算符:

if(xmlhttp.readyState = 4 && xmlhttp.status == 200)

必须是

if(xmlhttp.readyState == 4 && xmlhttp.status == 200)

答案 1 :(得分:0)

您确定状态是200吗?

if(xmlhttp.readyState == 4 ) { //<-- typo 
    if(xmlhttp.status == 200) {
            document.getElementById('data').innerHTML = xmlhttp.responseText;
    } else {
            document.getElementById('data').innerHTML = xmlhttp.status + ": " + xmlhttp.statusText;
    } 
} else {
    document.getElementById('data').innerHTML = "loading...";
}

现在你说状态为零,这意味着你没有取消调用发出Ajax请求的函数的click事件/表单提交。我猜你正在使用内联事件处理程序,所以它看起来像这样:

<a href="foo.gif" onclick="getdata(); return false;">
<form onsubmit="getdata(); return false;">