编写了以下ajax行来从xml文件中获取一些数据。但它没有这样做。没有抛出错误。但是浏览器窗口中没有显示任何数据。我有我的xampp runnign但是可以&# 39;弄清楚为什么会发生这种情况。任何人都可以帮我解决这个问题吗?
<body>
<p id='suggestion'></p>
<script>
function initialize(){
var suggest=document.getElementById('suggestion');
var xmlhttp,txt,elem,l;
if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}else if(window.ActiveXObject){
xmlhttp=new ActiveXObject();
}
if(xmlhttp){
if(xmlhttp.readyState==4 && xmlhttp.status==200){
xmlhttp.onreadystatechange=function(){
elem=xmlhttp.responseXML;
l=elem.getElementsByTagName('cd');
for(i=0;i<l.length;i++){
txt+=l[i].getELementsByTagName('title')[0].firstChild.data;
}
}
xmlhttp.open('GET','new.xml',true);
xmlhttp.send(null);
suggest.innerHTML=txt;
}
}
}
window.onload=initialize;
</script>
xml文件:
<? xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
</cd>
<cd>
<title>We are all we need</title>
<artist>above and beyond</artist>
</cd>
</catalog>
答案 0 :(得分:1)
xmlhttp.onreadystatechange
在条件包装器中分配 - 除非xmlhttp
已经处于readyState 4并且状态为200(并且不太可能),否则不会分配它。
尝试交换行
if(xmlhttp.readyState==4 && xmlhttp.status==200){
和
xmlhttp.onreadystatechange=function(){