Ajax im MSIE 6

DataFox

Erfahrenes Mitglied
Hey Leute

Der MSIE 6 meldet mir immer, das "XMLHttpRequest ist undefiniert" ist. Wieso gibt es die Fehlermeldung, obwohl ich prüfe, ob das Objekt vorhanden ist Das ist total irrsinnig.

Oder habe ich einen ganz fiesen Denkfehler in meinem Code?

Code:
		function createXMLHTTPobject() {
			var xmlHTTPobject = undefined;
			if(XMLHttpRequest) {
			    xmlHTTPobject = new XMLHttpRequest();
			}
			if(!xmlHTTPobject && ActiveXObject) {
			    try {
			        xmlHTTPobject  = new ActiveXObject("Msxml2.XMLHTTP");
			    } catch(e) {
			        try {
			            xmlHTTPobject  = new ActiveXObject("Microsoft.XMLHTTP");
			        } catch(e) {
			            ;
			        }
			    }
			}
			return xmlHTTPobject;
		}
 
Hi,

so wie du undefined zuweist, müsste es ein Objekt sein. Entweder du übergibst es als String oder einfach gar nichts.
In der if-Bedingung prüfst du dann mit Hilfe von typeof den Typ von xmlHTTPobject.

Ausserdem muss in der ersten if-Bedingung die Methode XMLHTTPRequest in Abhängigkeit des window-Objekts geprüft werden. Sonst wird es vom IE6 mit einem Fehler quittiert.

Code:
function createXMLHTTPobject() {
  var xmlHTTPobject;

  if(window.XMLHttpRequest) {
      xmlHTTPobject = new XMLHttpRequest();
  }else if(typeof xmlHTTPobject == "undefined" && ActiveXObject) {
      try {
          xmlHTTPobject  = new ActiveXObject("Msxml2.XMLHTTP");
      } catch(e) {
          try {
              xmlHTTPobject  = new ActiveXObject("Microsoft.XMLHTTP");
          } catch(e) {
              ;
          }
      }
  }
  return xmlHTTPobject;
}

Ciao
Quaese
 

Neue Beiträge

Zurück