【发布时间】:2012-08-13 03:39:06
【问题描述】:
好的,所以我正在尝试使用 javascript HTTPRequest 来加载名为“chem_vocab.xml”的 XML 文档。但是,每当我尝试执行该功能时,什么都不会发生。我放置了几行 alert() ,这样我就可以看到我的故障发生在哪里。之间似乎存在一些问题:
alert("Beginning Loading");
和
alert("XML Loaded");
页面会正确提示“正在加载...”,但不会提示“已加载 XML”。我的问题在哪里?
function load_vocab(){
alert("Beginning Loading...");
var xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","chem_vocab.xml",true);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
alert("XML loaded");
var x=xmlDoc.getElementsByTagName("wordlist")[0];
x= x.getElementsByTagName("word")[0];
word = x.getElementsByTagName("spelling")[0].childNodes[0].nodeValue;
definition = x.getElementsByTagName("definition")[0].childNodes[0].nodeValue;
alert("XML parsing successful");
document.getElementById('spelling').innerHTML = word;
document.getElementById('definition').innerHTML = definition;
}
【问题讨论】:
-
我猜“它不起作用”。 -1 表示非描述性标题和缺乏错误报告。 (我怀疑抛出了异常。)
-
alert比console.log好多了,对吧?:P -
javascript 控制台报告错误发生在哪一行?
-
我不知道这是否与您的问题有关,但您使用的是异步 Ajax 调用,但没有使用侦听器来知道它何时完成。即使您的代码没有莫名其妙地停止,
xmlhttp.responseXML也将始终未定义。 -
你正在发送一个异步请求,但读取它是同步的
标签: javascript xml ajax xmlhttprequest