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

AJAX Discussion :

[AJAX] http_request.status toujour à 0 !


Sujet :

AJAX

  1. #1
    Membre averti
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 13
    Par défaut [AJAX] http_request.status toujour à 0 !
    Bonjour.
    J'ai lu tout vos tuto sur l'AJAX (très bien faites d'ailleur), je pensais avoir bien compris. Mais en copian/collant ce simple code, ca me renvois :

    readyState=1 status=0 responseText=
    readyState=1 status=0 responseText=
    readyState=2 status=0 responseText=
    readyState=3 status=0 responseText=contenu_du_fichier
    readyState=4 status=0 responseText=contenu_du_fichier

    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
    <script type="text/javascript" language="javascript">
    function makeRequest(url) {
    	var http_request = false;
    	if (window.XMLHttpRequest) { // Mozilla, Safari,...
    		http_request = new XMLHttpRequest();
    		if (http_request.overrideMimeType) {
    			http_request.overrideMimeType('text/xml');
    		}
    	} else if (window.ActiveXObject) { // IE
    		try {
    			http_request = new ActiveXObject("Msxml2.XMLHTTP");
    		} catch (e) {
    			try {
    			http_request = new ActiveXObject("Microsoft.XMLHTTP");
    			} catch (e) {}
    		}
    	}
    	if (!http_request) {
    		alert('Giving up :( Cannot create an XMLHTTP instance');
    		return false;
    	}
    	http_request.onreadystatechange = function() {
    	
    		alert("readyState="+http_request.readyState + " status=" + http_request.status  + " responseText=" + http_request.responseText);
    		
    		if ( http.readyState == 4 && http.status == 200) {
    			alert("Ca a enfin marché");
    		}
    	 }
    	http_request.open("GET", url, true);
    	http_request.send(null);
    
    }
    </script>
    La référence de l'url est un html ne contenant rien d'autre que "contenu_du_fichier" (aucunes balises)
    Jamais donc mon "http_request.status" n'es à 200, alors que mon "http_request.responseText" est complet !!!!

    Sur un autre poste j'ai lu ceci :
    Citation Envoyé par FremyCompany
    Ne teste plus le status...
    Il semble qu'il y aie souvent des pbs avec celui-ci et dans 90% des cas, c'est sans raisons.
    if (xhr.readyState == 4) suffit amplement (ensuite tu vérrifie que ton responseText != null et c'est ok)
    Mais quand je le by pass, j'ai une erreur plus loin (des parties de fichier sont indéfinies -> quand je teste avec un XML dont j'extait le contenu)


    Merci d'avance

    PS: J'ai FF2 et IE7

  2. #2
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Si tu teste en local (C:\, ...) alors il n'y a pas de status car il n'y a pas de réponse du serveur... vu qu'il n'y a pas de serveur

    Alors status reste égal à 0...

  3. #3
    Membre averti
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 13
    Par défaut
    C'est juste ca!
    Un grand merci... je n'avais jamais lu cela.
    Pfff, j'ai l'air bête maintenant

  4. #4
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Citation Envoyé par islacoul12
    C'est juste ca!
    Un grand merci... je n'avais jamais lu cela.
    Pfff, j'ai l'air bête maintenant
    De rien !
    Bonne continuation !

  5. #5
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 20
    Par défaut
    Salut,

    Moi par contre mon projet est sur le serveur mais j'obtiens toujours le status à 0
    voila le 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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
     
    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
    <script type="text/javascript">
     
    google.load("gdata", "1.x");
    google.setOnLoadCallback(initFunc);
     
    var contactsService;
     
    function setupContactsService() {
      contactsService = new google.gdata.contacts.ContactsService('*********');
    }
     
    function logMeIn() {
      var scope = 'http://www.google.com/m8/feeds';
      var token = google.accounts.user.login(scope);
    }
     
    function initFunc() {
     // setupContactsService();
      //logMeIn();
      membre_event();
    }
     
    var httpRequest; // Notre objet XMLHttpRequest
     
    function createRequestObject()
    {
        var httpRequest;
        if(window.XMLHttpRequest)
        { // Mozilla, Safari, ...
        	httpRequest = new XMLHttpRequest();
        }
        else if(window.ActiveXObject)
        { // Internet Explorer
        	httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
        }
        return httpRequest;
    }
     
     
     
    function membre_event() {
    	document.getElementById('ajax_membre').innerHTML = '<em>Chargement...</em>';
    	httpRequest = createRequestObject();
        httpRequest.open('GET', "http://www.google.com/m8/feeds/contacts/*****/full", true);
        httpRequest.onreadystatechange = function() { handleAJAXReturn(httpRequest); };
     
        function handleAJAXReturn(httpRequest) {
     
        	if (httpRequest.readyState == 4) {
        		alert(httpRequest.status);
        		if(httpRequest.status == 200)
                {
     
        			/*
        			 * Retrieve all contacts
        			 */ 
     
        			// Create the contacts service object
        			var contactsService =
        			    new google.gdata.contacts.ContactsService(*******);
     
        			// The feed URI that is used for retrieving contacts
        			var feedUri = 'http://www.google.com/m8/feeds/contacts/********/full';
        			var query = new google.gdata.contacts.ContactQuery(feedUri);
     
        			// Set the maximum of the result set to be 5
        			query.setMaxResults(5);
     
        			// callback method to be invoked when getContactFeed() returns data
        			var callback = function(result) {
     
        			  // An array of contact entries
        			  var entries = result.feed.entry;
     
        			  // Iterate through the array of contact entries
        			  for (var i = 0; i < entries.length; i++) {
        			    var contactEntry = entries[i];
     
        			    var emailAddresses = contactEntry.getEmailAddresses();
     
        			    // Iterate through the array of emails belonging to a single contact entry
        			    for (var j = 0; j < emailAddresses.length; j++) {
        			      var emailAddress = emailAddresses[j].getAddress();
        			      PRINT('email = ' + emailAddress);
        			    }    
        			  }
        			}
     
        			// Error handler
        			var handleError = function(error) {
        			  alert(error);
        			}
     
        			// Submit the request using the contacts service object
        			contactsService.getContactFeed(query, callback, handleError);
                }
                else
                {
                    document.getElementById('ajax_membre').innerHTML = "<strong>N/A</strong>";
                }
     
        	}
        }
     
        httpRequest.send(null);
     
    }
     
     
    </script>
    Merci d'avance pour la réponse

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

Discussions similaires

  1. [AJAX] Ajax status toujours 0
    Par patricx dans le forum AJAX
    Réponses: 2
    Dernier message: 08/12/2011, 23h00
  2. [AJAX] xhr.status = 0, Mais pas toujours :~
    Par Terni dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 29/10/2008, 15h12
  3. [AJAX] nsIXMLHttpRequest.status error incomprehensible
    Par Shiftane dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/04/2007, 10h54
  4. [AJAX] Variables status et statusText d'un XHR
    Par scrouet dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/11/2006, 09h21
  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