Récemment, je développais un programme serveur utilisant ajax et j'ai découvert que le navigateur IE ne prenait pas en charge l'objet xmlhttprequest et que le contrôle Microsoft.XMLHTTP était introuvable.
Un problème surgit que nous devons résoudre. La solution est la suivante :
1. Exécutez regsvr32 msxml3.dll ;
2. Utilisez des frameworks prêts à l'emploi pour faire de l'ajax ;
3. Optimisation du code :
if(window.ActiveXObject)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
sinon si (window.XMLHttpRequest)
{
xmlHttp = nouveau XMLHttpRequest();
}
si(handle_s == null)
handle_s = "bin/normal.py/db";
this.xmlHttp.onreadystatechange = handle_l;
this.xmlHttp.open("GET",handle_s,true);
this.xmlHttp.send(null);
ou déterminez le navigateur
var agt = navigator.userAgent.toLowerCase();
var is_ie = (agt.indexOf("msie") != -1);
var is_ie5 = (agt.indexOf("msie 5") != -1);
var is_opera = (agt.indexOf("opera") != -1);
var is_mac = (agt.indexOf("mac") != -1);
var is_gecko = (agt.indexOf("gecko") != -1);
var is_safari = (agt.indexOf("safari") != -1);
function CreateXmlHttpReq(handler) {
var xmlhttp = null;
si (est_ie) {
// Garanti d'être ie5 ou ie6
var contrôle = (is_ie5) ? "Microsoft.XMLHTTP" : "Msxml2.XMLHTTP"
;
xmlhttp = new ActiveXObject(contrôle);
xmlhttp.onreadystatechange = gestionnaire ;
} attraper (ex) {
// TODO : meilleur message d'aide
alert("Vous devez activer les scripts actifs et les contrôles activeX");
}
} autre {
// Mozilla
xmlhttp = nouveau XMLHttpRequest();
xmlhttp.onload = gestionnaire ;
xmlhttp.onerror = gestionnaire;
}
return xmlhttp;
}
ou
http://www.cnblogs.com/skylaugh/archive/2006/11/20/566164.html