Page 1 sur 1

fonction Ajax qui marche très bien sous IE mais pas sous Moz

Posté : 23 mai 2009, 11:35
par dogmongo
Bonjour,

Comme je le dis dans le titre
J'utilise cette fonction sous internet exporer sans problème, mais sous mozilla ca ne fonctionne pas du tout, j'aimerai vraiment comprendre pourquoi ?

Code : Tout sélectionner

function getXhr(){ var xhr = null; if(window.XMLHttpRequest) // Firefox et autres xhr = new XMLHttpRequest(); else if(window.ActiveXObject){ // Internet Explorer try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false; } return xhr } function go() { var xhr = getXhr(); xhr.onreadystatechange = function() { if(xhr.readyState == 4 && xhr.status == 200) { document.getElementById('affiche').innerHTML = xhr.responseText; } } xhr.open("POST",'test.php',true); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); xhr.send(); }
merci d'avance

Re: fonction Ajax qui marche très bien sous IE mais pas sous Moz

Posté : 31 déc. 2009, 17:18
par Aurélien Barbier-Accary
il faut inverser l'ordre de tes tests au début dans tes if et try/catch.
Utilise plutôt ceci :
var xhrObject = null;
try {
xhrObject = new ActiveXObject('Msxml2.XMLHTTP');
} catch (err1) {
try {
xhrObject = new ActiveXObject('Microsoft.XMLHTTP');
} catch (err2) {
try {
xhrObject = new XMLHttpRequest();
}
catch (err3) {
alert('Your Browser does not manage XMLHttpRequest nor ActiveXObject/XMLHTTP objects');
return null;
}}}
return xhrObject ;