Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/06/2011, 19h31   #1
Invité de passage
 
Etudiant
Inscription : janvier 2011
Messages : 7
Détails du profil
Informations professionnelles :
Activité : Etudiant

Informations forums :
Inscription : janvier 2011
Messages : 7
Points : 0
Points : 0
Par défaut XMLHttpRequest avec firefox

Salut j'ai un probléme avec firefox et les objets XMLHttpRequest. Avec IE 7, ça marche bien.
Mais avec FF,j'obtient toujours XMLHttpRequest.status=0 et malgrés ça la requête est exécuté.Voici mon code javascript que j'ai mis en place :
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
 
<html>
<head>
<title>Test XMLxhrRequest </title>
 
</head>
<body>
	<script type="text/javascript">
 
		function getxhrRequest(){
				if (window.XMLHttpRequest) { 
					xhrRequest = new XMLHttpRequest();
				}
				else if (window.ActiveXObject) { 
					xhrRequest = new ActiveXObject("Microsoft.XMLHTTP");
				}
				return xhrRequest;
		}
 
		xhrRequest=getxhrRequest();
 
		alert(xhrRequest);
		xhrRequest.onreadystatechange = function(){
 
 
			if(xhrRequest.readyState == 4){
				if(xhrRequest.status == 200){
 
							jsonText = xhrRequest.responseText;
							//Traitement de la réponse
				}						
			}                    
		}
 
			xhrRequest.open('GET',url,true);
			xhrRequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded');            
			xhrRequest.send(null);   
 
 
	</script>
 
</body>
</html>

Avec FireBug j'ai constaté que ça coince au niveau de la ligne Quelqu'un aura une idée sur l'origine du problème ???
merci d'avance.
Cool_Boy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2011, 19h53   #2
Membre Expert
 
Avatar de Eric2a
 
Homme Eric Garidacci
Inscription : septembre 2005
Messages : 1 057
Détails du profil
Informations personnelles :
Nom : Homme Eric Garidacci
Âge : 41

Informations forums :
Inscription : septembre 2005
Messages : 1 057
Points : 1 564
Points : 1 564
Salut,

La propriété status peut en effet contenir la valeur 0 au lieu de la valeur 200. Il est donc indispensable de toujours prendre ce cas en compte.

Code :
if(xhrRequest.status==200||xhrRequest.status==0){
__________________

N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].

Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ...
Eric2a est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2011, 20h54   #3
Membre expérimenté
 
Avatar de nadox
 
Homme
Développeur
Inscription : février 2010
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : Développeur
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2010
Messages : 360
Points : 545
Points : 545
Bonjour,
Je ne dirais pas qu'il faut toujours le prendre en compte, car il peut aussi souvent signifier que la requête n'aboutiras pas, ce qui n'est pas souhaitable lorsqu'on est en production.
Par contre, ça peut être nécessaire pour la mise au point d'un script : on retrouve souvent le 'status' à 0 lorsqu'on fait une requête en local(dans une page html sans serveur par exemple).

Par contre, s'agît-il d'une requête avec la méthode 'POST' ou la méthode 'GET' :
Voici l'extrait du code qui me fait poser la question :
Code :
1
2
3
 
xhrRequest.open('GET',url,true);
xhrRequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
nadox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2011, 21h19   #4
Invité de passage
 
Etudiant
Inscription : janvier 2011
Messages : 7
Détails du profil
Informations professionnelles :
Activité : Etudiant

Informations forums :
Inscription : janvier 2011
Messages : 7
Points : 0
Points : 0
C'est une méthode GEt et puis justement je fais une requête en local. ça change quoi ?
Cool_Boy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2011, 21h28   #5
Membre expérimenté
 
Avatar de nadox
 
Homme
Développeur
Inscription : février 2010
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : Développeur
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2010
Messages : 360
Points : 545
Points : 545
Si tu fais une requete en local, le status '0' est "normal", il faut donc le tester aussi comme le suggère Eric2a. Il n'est cependant pas nécessaire de le laissé lorsque la requête n'est ensuite plus faite en local(lors du déploiement sur un serveur).

Pour ma question sur la méthode utilisée pour la requête, c'est parce que cette ligne :
Code :
1
2
 
xhrRequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
doit normalement être utilisé pour une requête 'POST', mais pas pour une requête 'GET'.
nadox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2011, 21h28   #6
Invité de passage
 
Etudiant
Inscription : janvier 2011
Messages : 7
Détails du profil
Informations professionnelles :
Activité : Etudiant

Informations forums :
Inscription : janvier 2011
Messages : 7
Points : 0
Points : 0
J'ai essayer avec
Code :
if(xhrRequest.status==200||xhrRequest.status==0){
mais ça fonctionnait pas...
Et puis si jamais il y a un serveur..mais sur IE ça fonctionne bien mais pas sur firefox...
Cool_Boy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h30.


 
 
 
 
Partenaires

Hébergement Web