0

为什么老是说“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();
}
4

2 回答 2

0

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

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

一定是

if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
于 2013-09-19T13:47:23.127 回答
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 请求的函数的单击事件/表单提交。我猜你正在使用内联事件处理程序,所以它看起来像这样:

<a href="foo.gif" onclick="getdata(); return false;">
<form onsubmit="getdata(); return false;">
于 2013-09-19T13:52:22.000 回答