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 :
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.
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 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); } }
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
Partager