rhan_659
Messages postés85Date d'inscriptionlundi 1 novembre 2004StatutMembreDernière intervention30 juin 2011
-
25 juin 2008 à 11:36
rhan_659
Messages postés85Date d'inscriptionlundi 1 novembre 2004StatutMembreDernière intervention30 juin 2011
-
26 juin 2008 à 08:51
Bonjour à tous
Je suis face à un bug désopilant, un code en ajax qui fonctionne sous FF2 mais pas sous FF3
voila le code que j'utilise
requete = new XMLHttpRequest();
requete.overrideMimeType('text/xml');
requete.onreadystatechange = traitementXML;
requete.open("GET", vurl , false);
requete.send(null);
function traitementXML(){
alert("Bouuuu !");
}
j'ai passé requete.open avant requete.onreadystatechange ça ne change rien,idem en remplacant requete.onreadystatechange traitementXML; par requete.onreadystatechange function() {traitementXML;};
maelob
Messages postés943Date d'inscriptionmardi 14 novembre 2006StatutMembreDernière intervention 7 août 20093 25 juin 2008 à 11:43
Bonjour,
déjà es tu conscient que ton code ne fonctionnera pas sous le navigateur installé par défaut de l'OS le plus utilisé dans le monde?
Sinon vurl c'est quoi?
Et après je suis pas sure de cette ligne soit juste. requete.onreadystatechange = traitementXML; En général je fais des truc dans ce genre après avoir crée un xhr (xmlhttprequest)
function test(rag1, arg2) {
var xhr = getXHR();
if (xhr == null) {
alert("Votre navigateur ne supporte pas AJAX");
return;
}
// Fonction à exécuter quand on aura une réponse du serveur
xhr.onreadystatechange = function() {
// on ne traite que si on a tout recu et que la réponse du serveur est OK if (xhr.readyState 4 && xhr.status 200) {
// on récupère la réponse au format texte ...
var reponse = xhr.responseText;
// ... on remplace le bloc concerné ...
div.innerHTML = reponse;
}
}
// connexion au serveur:
xhr.open("GET","unepage.php?arg1="+arg1+"&arg2="+arg2,true);
// envoi de la requete :
xhr.send(null);
}
La fonction getXHR() crée un objet xhr suivant le navigateur.
<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog
Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)
rhan_659
Messages postés85Date d'inscriptionlundi 1 novembre 2004StatutMembreDernière intervention30 juin 2011 25 juin 2008 à 12:00
re,
je n'ai mis que la parti du code concernant Firefox
ensuite, c'est un code qui est dans une fonction qui renvois de l'information, ça n'attaque pas directement la page
mon code fonctionne parfaitement sous i.e 6 (pas testé sous ie.7 faudra que je le fasse) et Firefox2
la fonction traitementXML parse un flux xml pour en récupérer des infos que la fonction va renvoyé. la aussi je n'ai mis que le code de teste afin de simplifié
sinon j'ai un peu avancé mon code est synchone (open false) ça marche avec FF2 mais pas FF3 si je le passe en asynchrone (open true) ça marche sur FF3 mais pas FF2
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 25 juin 2008 à 12:27
onreadystatechange n'est utilisable qu'en asynchrone
et rassures toi, toutes les versions de tous les navigateurs : aucun bug ;o)
enfin, tellement rares, dans des circonstances tout à fait particulières, et généralement
du aux extensions et autres modules complémentaires ! qu'on peut affirmer cela.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 25 juin 2008 à 13:22
ben... rien...
"derrière" le send, ça continuera... après la réponse du script sur le serveur.
c'est le "principe" du synchrone.
perso, avec FF, pas testé en version 3, mais dans celles précédentes,
il fallait send ('') et surtout pas send(null)
il serait quand même intéressant que tu nous mettes l'extrait
que tu utilises actuellement pour tester, parce qu'on ne sait
plus trop où on en est ( enfin... moi )
ça m'ennuierai d'avoir repondre un truc de test,
get et synchrone : déjà, je préfère post et asynchrone
encore que get ou post pour du xml ? mais surtout
je vais ( peut-être ? ) faire un machin qui marche
alors que pour toi, ça queute.
rhan_659
Messages postés85Date d'inscriptionlundi 1 novembre 2004StatutMembreDernière intervention30 juin 2011 25 juin 2008 à 13:44
pour la différence asynchrone/synchrone, j'avais bien compris
pour le code
if(window.XMLHttpRequest){
// Firefox et autres
requete = new XMLHttpRequest();
if (requete.overrideMimeType){requete.overrideMimeType('text/xml')}
}else if(window.ActiveXObject){
// Internet Explorer
try { requete = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e) {requete = new ActiveXObject("Microsoft.XMLHTTP");
}
}else{
//non supporté par le navigateur
requete = null;
}
function traitementXML(){
alert('bouuu !');
if (requete.readyState == 4){
//traitement uniquement si le flux XML est complètement chargé; 4 = complet"
if (requete.status == 200) {
//traitement de mon flux XML
}
}
}
le alert(bouuu !) ne s'affiche pas sous FF3 en mode synchrone et sous FF2 en mode asynchrone
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 25 juin 2008 à 14:14
@ xtremduke
il n'est pas en synchrone ? requete.open("POST", vurl , true);
@rhan
as-tu essayé l'exemple que je te donne... tel quel ?
ça doit baigner.
sinon, xtremduke a raison : ton erreur est ailleurs
et maelob n'a pas trot : que dit la console d'erreurs ? ( voire firebug ? )
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 25 juin 2008 à 14:18
>>ok, (ça marche pour I.E, FF2)
et pour FF3 ?
>>mais je fais comment dans ce cas pour récuperer mon flux XML
comme tu le faisais
<hr /> Cordialement Bul [mon Site] [M'écrire]