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 :
et la page web avec son javascript:
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>
Lorsque je clique sur mon lien, j'ai une erreur : "docXML has no properties" me dit Firebug.
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>
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..?
Partager