[AJAX] responseXml == null
Bonjour,
je d�bute avec ajax. J ai donc voulu commencer par mettre en place un exemple que tous les tutoriaux pour d�butant propose, � savoir une page web avec un lien qui va executer une requete au serveur pour all� chercher des infos sous forme Xml.
Donc voici la page qui me fourni du xml :
Code:
1 2 3 4 5 6 7
| <%@ page language="java" contentType="text/xml" pageEncoding="ISO-8859-1" session="false"%>
<?xml version="1.0" encoding="utf-8"?>
<exemple>
<donnee> donnee 1 </donnee>
<donnee> donnee 2 </donnee>
<donnee> donnee 3 </donnee>
</exemple> |
et la page web avec son javascript:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| <%@ taglib uri="/WEB-INF/tld/portlet.tld" prefix="portletAPI"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" session="false"%>
<portletAPI:init />
<script type="text/javascript">
<!--
function ajax()
{
var xhr=getXMLHttpRequest();
xhr.onreadystatechange = function() { alert_ajax(xhr); };
//on appelle le fichier reponse.txt
xhr.open("GET", "GenXml.jsp", true);
xhr.send(null);
}
function alert_ajax(xhr) {
if (xhr.readyState==4) {
alert(xhr.responseXML);
alert(xhr.status);
var docXML= xhr.responseXML;
var items = docXML.getElementsByTagName("donnee")
//on fait juste une boucle sur chaque element "donnee" trouvé
for (i=0;i<items.length;i++) {
alert(items.item(i).firstChild.data);
}
}
}
// retourne un objet xmlHttpRequest.
// méthode compatible entre tous les navigateurs (IE/Firefox/Opera)
function getXMLHttpRequest(){
var xhr=null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e1) {
xhr = null;
}
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
}
return xhr;
}
//-->
</script>
<P>
<a href="javascript:ajax();">Cliquez-moi !</a>
</P> |
Lorsque je clique sur mon lien, j'ai une erreur : "docXML has no properties" me dit Firebug.
Et pour cause : le alert(xhr.responseXML) m'affiche null.
Cepandant, le alert(xhr.status) vaut 200 ce qui signifie que la ressource a bien �t� trouv�e, il me semble.
Je ne sais pas pourquoi le xhr.responseXML me retourne null.
Si qq1 a une id�e je lui en serai gr�s de m en faire part :).
J'ai comme environnement server des Portlets, je sais pas si �a peut influer le comportement du fonctionnement AJAX..?