Javascript 无法使用XMLHttpRequest对象获取数据
我试图从与HTML文件位于同一目录的XML文件中获取数据,但似乎没有返回任何数据(而且我不确定以后如何呈现数据)。下面是脚本(以及我试图解析的XML文件中的示例记录)。谢谢你的帮助Javascript 无法使用XMLHttpRequest对象获取数据,javascript,ajax,xml,Javascript,Ajax,Xml,我试图从与HTML文件位于同一目录的XML文件中获取数据,但似乎没有返回任何数据(而且我不确定以后如何呈现数据)。下面是脚本(以及我试图解析的XML文件中的示例记录)。谢谢你的帮助 function getFromAndDoThis(r, callback, opt="") { var okay = true; var xhr = new XMLHttpRequest(); if (xhr) { xhr.addEventListener("
function getFromAndDoThis(r, callback, opt="") {
var okay = true;
var xhr = new XMLHttpRequest();
if (xhr) {
xhr.addEventListener("readystatechange", function() {callback(opt);}, false);
xhr.open("GET", r, true);
xhr.send(null);
}
else {
okay = false;
}
return okay;
}
/* callback function */
function displayCurriculum(which) {
var data = null;
var chapters, docroot;
data = extractXMLData(xhr);
if (data) {
chapters = data.getElementsByTagName("Chapter");
docroot = document.getElementsById("contentarea")[0];
var i = 0;
/* put each chapter and synopsis (if any) in nodes, and put these nodes in the DOM */
for (i=0; i < chapters.length; i++) {
var chapter = chapters[i];
var synopsis = chapter.firstChild;
var div = document.createElement("div");
var pc = document.createElement("p");
var ps = document.createElement("p");
div.setAttribute("id", toString(i));
pc.innerHTML = chapter.innerHTML;
ps.innerHTML = synopsis.innerHTML;
/* nodes are filled. now attach them to the DOM */
div.appendChild(pc);
div.appendChild(ps);
body.appendChild(div);
} // end for
} // end if
else {
alert("No data.");
}
}
函数getFromAndDoThis(r,回调,opt=”“){
var-ok=true;
var xhr=new XMLHttpRequest();
如果(xhr){
addEventListener(“readystatechange”,function(){callback(opt);},false);
xhr.open(“GET”,r,true);
xhr.send(空);
}
否则{
好=假;
}
返回OK;
}
/*回调函数*/
功能显示课程(其中){
var数据=null;
var章,docroot;
数据=extractXMLData(xhr);
如果(数据){
章节=data.getElementsByTagName(“章节”);
docroot=document.getElementsById(“contentarea”)[0];
var i=0;
/*将每个章节和概要(如果有)放在节点中,并将这些节点放在DOM*/
对于(i=0;i<?xml version="1.0"?>
<Curriculum name="algebra">
<Chapter>
Numbers
<Synopsis>
Real numbers, the number line, arithmetic, factoring, decimals, exponents, radicals, and complex numbers.
</Synopsis>
</Chapter>
</Curriculum>
数字
实数、数列、算术、因子分解、小数、指数、根和复数。
您的回调函数正在尝试读取xhr
,但变量超出范围。您需要将其作为参数传递给回调函数。我看不到您正在加载XML。
您可以通过Ajax实现这一点
$.ajax({
type: "GET",
url: "yourxml.xml",
dataType: "xml",
success: function(displayCurriculum){
}
});
问题代码中的第一个函数加载XML…并且这个问题没有标记为
jquery
,因此jquery答案不合适。