繁体   English   中英

AJAX HTTP请求刷新内容

[英]AJAX HTTP request refresh content

为什么它总是一直说“正在加载...”,而不显示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();
}

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

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

一定是

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

您确定状态为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;">

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM