IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] responseXml == null


Sujet :

JavaScript

  1. #1
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Par défaut [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 : 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..?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2006
    Messages : 53
    Par défaut
    et ta page "GenXml.jsp" qu'est ce qu'elle fait ?
    c'est elle qui doit te retourner la response.

    tu dois écrire sur le out dans cette page.

  3. #3
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Par défaut
    J'ai effectué un nouveau test. J'ai essayer de faire fonctionner exactement la même chose sur un serveur différent : Tomcat. Et avec lui ça marche trés bien. J'en déduit donc que mon probleme vient du serveur que j utilise (IBM Websphere portal 5.1).
    Si quelqu'un a de la documentation sur le fonctionnement d'ajax avec ce serveur, je lui en serai grés qu'il m en fasse part .

  4. #4
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Par défaut
    Voila, j ai trouvé la solution.
    Visiblement, ajax ne fonctionne pas correctement lorsqu'on l'effectue au niveau des portlets. Par contre, rien nous empêche de créer un servlet indépendant qui sera la cible ressource de l'ajax.
    voici un petit lien qui explique tout ça :
    http://www-128.ibm.com/developerwork...06_bishop.html

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] AJAX : responseXML
    Par linar009 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/05/2007, 16h07
  2. [AJAX] responseXML xmlhttprequest .
    Par Alex35 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 24/04/2007, 17h24
  3. [AJAX] responseXML et flux XML
    Par cheachwood dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/01/2007, 13h40
  4. [ajax] xhr.responseXML == null ?!
    Par XecTech dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 12/08/2006, 17h22
  5. [DOM] [Ajax]responseXML et méthodes DOM
    Par Herode dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/07/2006, 20h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo