Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Futur Membre du Club
    Inscrit en
    juin 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 28

    Informations forums :
    Inscription : juin 2008
    Messages : 29
    Points : 16
    Points
    16

    Par défaut XMLHttpRequest et chrome readyState coincé à 1

    Bonjour à tous,

    je viens de passer l'après midi sur un problème Ajax, je commence un peu à être à court d'idées.
    Je veux faire une barre de progression, pour cela j'utilise mon appel Ajax pour récupérer mes données et les afficher dans le navigateur.
    Mon code fonctionne très bien sur IE et Firefox, mais sous chrome pas moyen de passer une requête ajax correcte.

    Voici le code :
    Code :
    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
     
    var request = null;
    var refresh_ms = 2000;
     
    function updateTasksStatus()
    {	
    	try {
    		if (window.XMLHttpRequest) {
    			request = new XMLHttpRequest();
    			request.onreadystatechange = CallBackRequest;
    			request.open("GET", "monadresse", true);
    			request.send(null);
    		}
    	}
    	catch(e)
    	{
    		raiseError("updateTasksStatus()",e);
    	}
    }
     
    function CallBackRequest() {
    	if ( request.readyState == 4 ) {
    		var TasksStatus=document.getElementById("TasksStatus");
    		TasksStatus.innerHTML = request.responseText;
    		setTimeout("updateTasksStatus();",refresh_ms);
    	}
    }
    Dès la première requête dans chrome j'ai un premier CallBackRequest qui est déclenché avec un readyState à 1, ensuite j'ai un readyState à 4 mais qui revient avec un status à 0, je n'ai donc pas mon contenu dans ma requête de retour, bref du coup mon timeout se met en place, et la deuxième requête se lance et me renvoie une réponse avec un readyState à 1, puis plus rien.
    Quand je regarde dans l'onglet network j'ai mon appel qui est annulé (apparemment j'ai vu sur le net que c'était juste une erreur d'affichage de chrome, mais j'ai positionné un changeListener sur abort de ma request, et j'ai effectivement quelque chose qui me l'annule lors du deuxième appel).
    J'ai essayé un peu tout ce qui me tombait sous la main, je commence un peu à sécher la, si quelqu'un a une idée.

    Merci

  2. #2
    Futur Membre du Club
    Inscrit en
    juin 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 28

    Informations forums :
    Inscription : juin 2008
    Messages : 29
    Points : 16
    Points
    16

    Par défaut

    J'ai également essayé de faire un objet unique pour chaque appel (j'ai lu à droite à gauche que c'étais pas bon de passer par une variable globale), mais cela ne fonctionne pas non plus.

  3. #3
    Futur Membre du Club
    Inscrit en
    juin 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 28

    Informations forums :
    Inscription : juin 2008
    Messages : 29
    Points : 16
    Points
    16

    Par défaut

    Il y avait une validation de formulaire via JS cachée dans un coin qui empêchait la requête AJAX de se faire correctement.

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •