[AJAX] xhr.status==200 renvoi 0 sur firefox et sur IE sur xhr.send(null)
Bonjour
sur firefox xhr.status me renvoie 0 & sur IE j'ai l'erreur sur xhr.send ( c'est ce que je pense)
j'ai beau cherché partout mais je ne trouve pas la source du problème de plus je suis débutant "ajaxien" ...
je mets tout le code au cas où :
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
window.onload = initAll;
var xhr = null ;
var mairie = new Array();
function initAll() {
document.getElementById("formulaire").onkeyup = chercher;
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
}
else{
if(window.ActiveXObject){
try {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) { }
}
}
if (xhr) {
xhr.onreadystatechange = setmairies;
xhr.open("GET", "mairie.xml", true);
xhr.send(null);
}
else {
alert("Désolé, votre navigateur n'est pas compatible avec Ajax :( ");
}
}
function setmairies() {
if (xhr.readyState == 4 ) {
if (xhr.status == 200) {
if (xhr.responseXML) {
var toutes_mairies = xhr.responseXML.getElementsByTagName("tb_mairie");
for ( var i=0; i < toutes_mairies.length; i++) {
mairie[i] = toutes_mairies[i].getElementsByTagName("nom")[1].lastChild;
}
}
}
else {
alert("Il y a un problème avec la requète " + xhr.status);
}
}
}
function chercher() {
var str = document.getElementById("formulaire").value;
document.getElementById("formulaire").className = "";
if (str != "") {
document.getElementById("popups").innerHTML = "";
for ( var i = 0 ; i < mairie.length ; i++) {
var cette_mairie = mairie[i].nodeValue;
if ( cette_mairie.toLowerCase().indexOf(str.toLowerCase()) == 0) {
var tempDiv = document.createElement("div");
tempDiv.innerHTML = cette_mairie ;
tempDiv.onclick = choix;
tempDiv.className = "suggestions";
document.getElementById("popups").appendChild(tempDiv) ;
}
}
var liste = document.getElementById("popups").childNodes.lenght;
if (liste == 0) {
document.getElementById("formulaire").className = "error";
}
if (liste == 1) {
document.getElementById("formulaire").value = document.getElementById("popups").firstChild.innerHTML;
document.getElementById("popups").innerHTML = "";
}
}
}
function choix(evt) {
var thisDiv = (evt) ? evt.target : window.event.srcElement ;
document.getElementById("formulaire").value = thisDiv.innerHTML;
document.getElementById("popups").innerHTML = "";
} |