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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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..?