Buongiorno.
All'interno di un progetto universitario mi trovo ad avere a che fare con AJAX e con al necessità di recuperare dati da file xml in maniera asincrona. Il web è pieno di esempi e la cosa non dovrebbe essere troppo difficile, se non che mi trovo ad un punto morto con un esempio didattico.
Ho questo xml che ho salbvato in locale nella stessa cartella del mio dummy index per evitare problemi di accesso cross domain e ho la seguente pagina html con script javascript
Codice PHP:
<html>
<head>
<script type="text/javascript">
function getInfo(){
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",false);
xmlhttp.send();
/*xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
*/ xmlDoc=xmlhttp.responseXML;
document.getElementById("to").innerHTML=
xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
document.getElementById("from").innerHTML=
xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
document.getElementById("message").innerHTML=
xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
/*
}
}*/
}
function getInfoA(){
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
xmlDoc=xmlhttp.responseXML;
document.getElementById("to").innerHTML=
xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
document.getElementById("from").innerHTML=
xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
document.getElementById("message").innerHTML=
xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
}
}
xmlhttp.open("GET","note.xml",true);
xmlhttp.send();
}
</script>
</head>
<body onload="getInfo()">
<h1>W3Schools Internal Note</h1>
[b]To:[/b] <span id="to"></span>
[b]From:[/b] <span id="from"></span>
[b]Message:[/b] <span id="message"></span>
<button type="button" onclick="getInfoA()">click me</button>
</body>
</html>
Il problema è che la prima funzione "getInfo()" fa il suo dovere, mentre la seconda "getInfoA()", sia che venga triggerata dal bottone che dall'onload non da alcun output. Dove sbaglio?