我第一次尝试使用某些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>
答案 0 :(得分:2)
您正在将req
而不是req.responseText
或req.responseXML
传递给XML解析器。
否则可以正常工作:http://jsfiddle.net/cLGGZ/