Voila je reviens avec mon code modifié :
xhr.js :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| var xhr = null;
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;
} |
J'ai une doute sur la variable xhr, est-ce une variable globale?
Yes
loadXML.js :
1 2 3 4 5 6 7 8 9 10 11 12 13
| function loadXML() {
xhr = getXhr() ;
var url = "js/dvd.xml";
xhr.onreadystatechange = function(){
alert("readyState : "+xhr.readyState + " - status : " + xhr.status) ;
};
xhr.open("POST", url, true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.setRequestHeader("Content-length", 0);
xhr.setRequestHeader("Cache-Control", "no-cache");
xhr.setRequestHeader("Connection", "close");
xhr.send();
} |
Avec cette nouvelle déclaration du XHR, le script fonctionne sous IE et FF ; seulement IE crée une erreur bidon :
Détails de l’erreur de la page Web
Agent utilisateur : Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; OfficeLiveConnector.1.3; OfficeLivePatch.1.3; .NET CLR 1.1.4322)
Horodateur : Mon, 24 Aug 2009 20:34:39 UTC
Message*: Erreur non spécifiée.
Ligne*: 7
Caractère*: 2
Code*: 0
URI*:
http://127.0.0.1/galerie/js/loadXML.js
Message*: Erreur non spécifiée.
Ligne*: 7
Caractère*: 2
Code*: 0
URI*:
http://127.0.0.1/galerie/js/loadXML.js
Ligne 7 :
xhr.open("POST", url, true);
Quelqu'un aurait une idée ?
D'avance merci
Partager