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] Ajax xhr.status renvoie 0


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Par défaut [AJAX] Ajax xhr.status renvoie 0
    Bonjour,

    Mon problème est le suivant : xhr.status renvoie 0
    Voici mon code :

    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
     
    <script language="JavaScript">
    function getXMLHttpRequest()
    {
    var xhr = null;
    if (window.XMLHttpRequest)
    {
    xhr = new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
    try
    {
    xhr = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)
    {
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    }
    else
    {
    alert('pas de XMLHttpRequest');
    xhr = false;
    }
    return xhr;
    } 
     
    function ajax()  {
    	xhr = getXMLHttpRequest();
        xhr.onreadystatechange = testRep;
    	xhr.open("GET", "ListeP2K.xml", true);
    	xhr.send(null);
    }
     
    function testRep() {
    	if (xhr.readyState == 4  ) {
    		if (xhr.status ==200) {
    			document.write (xhr.responseText);
    		}
    		else {
    			alert("Problem: " + xhr.statusText + " " + xhr.status);
    		}
    	}
    }
    </script>
     
    <a href="javascript:ajax();">Click me</a>
    J'ai lu sur un autre post qu'il ne fallait pas mettre l'initialisation de xhr dans une fonction afin qu'elle soit initialiser au chargement de la page mais cela est-il possible vu que j'utilise un lien pour afficher mes réponses?

    merci pour votre aide

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2006
    Messages : 121
    Par défaut
    Bonjour Cell,

    Bien sur qu'il est possible d'initialiser le XHR dans une fonction.
    Il suffit d'appeller ta fonction à chaque requete Ajax envoyée. Ce que tu as fait devrait très bien marcher.
    Par contre, au début de ta fonction getXMLHttpRequest() tu devrais vérifier que xhr != null pour éviter de le recréer à chaque appel de ta fonction Ajax().

    Voici un autre exemple si cela peut aider:
    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
     
    /** This is a list of XMLHttpRequest creation factory functions to try*/
    XHRfactories = [
        function() { return new XMLHttpRequest(); },
        function() { return new ActiveXObject("Msxml2.XMLHTTP"); },
        function() { return new ActiveXObject("Microsoft.XMLHTTP"); }
    ];
     
    /** When we find a factory that works, store it here*/
    XHRfactory = null;
     
    function XHRnewRequest() {
        if (XHRfactory !== null) {
        	return XHRfactory();
        }
     
        for(var i = 0; i < XHRfactories.length; i++) {
            try {
                var factory = XHRfactories[i];
                var request = factory();
                if (request !== null) {
                    XHRfactory = factory;
                    return request;
                }
            }
            catch(e) {
                continue;
            }
        }
     
        // If we get here, none of the factory candidates succeeded,
        // so throw an exception now and for all future calls.
        XHRfactory = function() {
            throw new Error("XMLHttpRequest not supported");
        };
        XHRfactory(); // Throw an error
    }

Discussions similaires

  1. ajax est xhr.status=0
    Par sebxid dans le forum jQuery
    Réponses: 1
    Dernier message: 25/05/2011, 13h16
  2. Réponses: 10
    Dernier message: 13/10/2008, 18h07
  3. [AJAX] xhr.status = 0
    Par Cartman.inc dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 22/04/2008, 11h23
  4. Réponses: 2
    Dernier message: 06/07/2007, 13h27
  5. [AJAX] AJAX - req.status == 200
    Par julien.63 dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 10/05/2006, 15h59

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