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

reqXMLパーサーの代わりにreq.responseTextまたはXMLパーサーに渡しreq.responseXMLます。

それ以外の場合は正常に動作します:http ://jsfiddle.net/cLGGZ/

于 2012-06-18T12:36:26.493 に答える