我第一次尝试使用 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]+" ";
} 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>