1

我第一次尝试使用 AJAX,但遇到了错误。我见过一些人有类似的问题,但是在阅读了他们之后,我仍然无法弄清楚我的代码有什么问题。

我遇到的问题是rf.getElementsByTagName("motd")[0]未定义。

这是代码:

function refresh() {
    var url = document.getElementById("url");
    var req;
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
    } else {
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    req.onreadystatechange=function() {
        if (req.readyState==4 && req.status==200) {
            var rf;
            if (window.DOMParser) {
                parser = new DOMParser();
                rf=parser.parseFromString(req,"text/xml");
            } else {
                rf = new ActiveXObject("Microsoft.XMLDOM");
                rf.async = false;
                rf.loadXML(req); 
            }
            document.getElementById("result").innerHTML="<div id=\"success\">"+
            rf.getElementsByTagName("motd")[0]+"&nbsp;";
        } else {
            document.getElementById("result").innerHTML="<div id=\"working\">Checking...</div>";
        }
    }
    req.open("POST","g2mc_status.php",true);
    req.send("server="+url);
}

我正在尝试处理的 XML(即所有 .php 文件现在都设置为输出):

<minecraft server="mc.nrd.li" port="25565">
    <motd>NerdConglomerate</motd>
    <players>
        <online>0</online>
        <maximum>20</maximum>
    </players>
</minecraft>
4

1 回答 1

2

您正在传递req而不是传递req.responseText或传递req.responseXML给 XML 解析器。

否则工作正常:http: //jsfiddle.net/cLGGZ/

于 2012-06-18T12:36:26.493 回答