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] Incapabale de récupérér mes données de responseXML


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 85
    Par défaut [AJAX] Incapabale de récupérér mes données de responseXML
    Bonjour tout le monde,
    Dans mon application, j'ai un appel Ajax à une servlet qui retourne un fichier xml comme résultat.Le problème c'est que j'ai pas pu récupérer mes éléments du document coté javascript.
    voila le code de ma servlet :

    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
     
    ...
    StringBuffer sbuffer = new StringBuffer();
    sbuffer.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>");
    if(displayList.size()!=0){
    	sbuffer.append("<spectaculars>");
    	for (DisplayDTO displayDTO : displayList) {
    		sbuffer.append("<spectacular>");
    		sbuffer.append("<id>"+displayDTO.getDisplay().getId()+"</id>");
    	        sbuffer.append(
    "label>"+displayDTO.getDisplay().getProductName()+"</label>");
    		sbuffer.append("<longitude>"+displayDTO.getLongitude()+"</longitude>");
    		sbuffer.append(
    "<lattitude>"+displayDTO.getLattitude()+"</lattitude>");
    		sbuffer.append("</spectacular>");
    	}
    	sbuffer.append("</spectaculars>");
    	response.setContentType("text/xml");
    	response.setHeader("Cache-Control", "no-cache"); 
    	response.getWriter().write(sbuffer.toString()); 
    	}else{
    response.setStatus(HttpServletResponse.SC_NO_CONTENT);
    }
    ...
    Quand j'alerte coté javascript "xhr.responseXML" je trouve bien un objet.
    Mais quand j'alerte "xhr.responseXML.getElementsByTagName("spectaculars").length", j'obtiens 0
    j'ai alerté ".legth" car lorsque j'ai voulu recupérér "xhr.responseXML.getElementsByTagName("spectaculars")[0]" il m'a retourné null.
    dernière information : J'ai débogué le code de ma servlet et je suis sur que le ficher xml créé contient des éléments.
    Merci d'avance.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Et avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.responseXML.documentElement.getElementsByTagName("spectaculars").length
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 85
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Et avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.responseXML.documentElement.getElementsByTagName("spectaculars").length
    avec ça j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    'documentElement' a la valeur NULL ou n'est pas un objet.
    A titre d'infos : j'utilise IE7.

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Il faudrait voir ton code JavaScript et si possible, ton xml.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 85
    Par défaut
    Avec plaisir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function initRequest() {
    if (window.XMLHttpRequest) {
    	return new XMLHttpRequest();
    } else {
    	if (window.ActiveXObject) {
    		return new ActiveXObject("Microsoft.XMLHTTP");
    	}
    }
    }
    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
     
    function findSpectaculars() {
    	var url = "Mon instanciation de  l'url"
    	var xhr = initRequest();
    	xhr.onreadystatechange = function () {
    		if (xhr.readyState == 4) {
    			if (xhr.status == 200) {
    				var spectaculars = xhr.responseXML.documentElement.getElementsByTagName("spectaculars");
    	                  alert(spectaculars.length);
    			} else {
    				if (xhr.status == 204) {
    				}
    			}
    		}
    	};
    	xhr.open("GET", url, false);
    	xhr.send();
    }

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    A priori, pas d'erreur flagrante dans ton code, en revanche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sbuffer.append(
    "label>"+displayDTO.getDisplay().getProductName()+"</label>");
    c'est une faute de frappe ?
    Sinon, essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sbuffer.append(
    "<label>"+displayDTO.getDisplay().getProductName()+"</label>");
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

Discussions similaires

  1. [MySQL] Afficher mes données dans un tableau HTML
    Par lassmust dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 02/03/2006, 11h43
  2. Meilleur méthode pour stocker mes données
    Par cyberlewis dans le forum Windows
    Réponses: 6
    Dernier message: 03/07/2004, 11h53
  3. [Debutant] Stocker mes données en XML ou BDD ?
    Par buffyann dans le forum XQUERY/SGBD
    Réponses: 32
    Dernier message: 10/06/2004, 23h54
  4. Stocker mes données
    Par Le Fou dans le forum C++Builder
    Réponses: 23
    Dernier message: 05/07/2002, 15h02

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