AJAX错误检查

时间:2013-07-18 05:11:04

标签: javascript html ajax

我刚刚开始使用AJAX。我有一个关于错误检查的查询,它在java脚本中解析XML数据。实际上我正在使用C代码动态创建XML文件。有一段时间,在下一行是“无法读取子节点”的错误。的 xmlDoc.getElementsByTagName( “发送”)[0] .childNodes [0] .nodeValue 即可。因此,在使用此行之前,有任何方法可以检查我的XML数据是否包含我正在寻找的所有标记。所以我可以检查并采取适当的行动。

我知道,我应该在创建XML文件时提供适当的标签。但如果我错过了一些时间,那么我希望我的java脚本应该检查。

我用来阅读XML的部分代码。

if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.open("GET","note.xml?"+ Math.random(),false);
xmlhttp.send();

xmlDoc=xmlhttp.responseXML;

document.getElementById("to").innerHTML=
xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;

提前致谢...

2 个答案:

答案 0 :(得分:2)

我认为一种方法是

var to = xmlDoc.getElementsByTagName("to")[0]
document.getElementById("to").innerHTML = to && to.childNodes.length ?  to.childNodes[0].nodeValue : '';

答案 1 :(得分:2)

您缺少onreadystatechange功能。

var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("GET","note.xml?"+ Math.random(),false);

xmlhttp.onreadystatechange = function () {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
          var xmlDoc = xmlhttp.responseXML;
          document.getElementById("to").innerHTML = xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
    }
}
xmlhttp.send();

确保您没有尝试从w3schools这样的来源学习AJAX。将MDN用于learning AJAX或任何JavaScript。