salut,
j'ai une erreur bizarre avec ajax
Ma fonction foctionne parfaitement sue IE7 et FF
Mais avec IE6, ma methode ajax fonctionne au premier appel puis elle ne fonctionne plus!
Est ce qu'il y a quelqu'un qui peut m'aider à expliquer ce probléme?
Version imprimable
salut,
j'ai une erreur bizarre avec ajax
Ma fonction foctionne parfaitement sue IE7 et FF
Mais avec IE6, ma methode ajax fonctionne au premier appel puis elle ne fonctionne plus!
Est ce qu'il y a quelqu'un qui peut m'aider à expliquer ce probléme?
Peut-être un problème de code ?
Bonjours Bovino,
Merci pour ta réponse mais si c'était un probléme de code, alors pourquoi fonctionne t elle avec FF et IE7
En tous cas voici ma fonction :
J'espére que tu puisse m'aiderCode:
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 function AJAXreSendMsg(idMsg, etatMsg) { if( etatMsg.substr(0,2) != "HE" ) { alert("On ne peut pas réenvoyer un méssage dont l'état n'est pas HE*"); return ; } if (confirm("Confirmez vous le réenvoie du méssage de l'Id : "+idMsg) == true ) { if(window.XMLHttpRequest) // Firefox et autres request = new XMLHttpRequest(); else if(window.ActiveXObject){ // Internet Explorer try { request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { request = new ActiveXObject("Microsoft.XMLHTTP"); } } else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false; } request.onreadystatechange = reSendCallback; request.open( "GET", BASE_URL + "/controller/ReSendMessageCtrl?idMsg="+idMsg, true ); } } function reSendCallback() { if ( request.readyState == 4 ) { if(request.status == 200){ alert("Done: "+request.responseText); } else { alert("ECHECK: "+request.status+","+ request.responseText); } } }
Je ne sais pour quelle raison, j'avais dans l'idée que l'événement onreadystatechange du HttpRequest avait un paramètre this ...
Merci pour toute personne qui a tenté m'aider.
J'ai enfin résolu le probléme: il s'agit en effet d'en probleme de cache.
Si quelqu'un rencontrera ce probléme , voici la solution que j'ai trouvé:
Ce parametre oblige le navigateur à effectuer une nouvelle requête.Code:"&date=" + new Date().getTime()
En même temps, c'était déjà expliqué dans la FAQ :
:fleche: http://javascript.developpez.com/faq...Ajax#xhr-cache
:roll: