XHR im Internet Explorer

incsoft

Grünschnabel
Hallo,

habe ein kleines Problemchen im Internet Explodierer und zwar soll ein XML-Dokument geladen und das Wurzelelement davon zurückgegeben werden. Das Laden erfolgt synchron.

Code:
            var req = null;
        
            if(window.ActiveXObject)
            {
            	req = new ActiveXObject("Microsoft.XMLHTTP");
            }
            else if (window.XMLHttpRequest)
            {
                req = new XMLHttpRequest();
            }
            
            if(req)
            {
	            req.open("GET", "test.xrf", false);
	            if (req.overrideMimeType) 
	            {
		            req.overrideMimeType("text/xml");
		        }
	            req.send(null);
            }
	    	
	    	var doc = req.responseXML;

             return doc.documentElement;

Im Firefox funktioniert es wunderbar. Im IE jedoch ist doc zwar nicht undefined jedoch existieren die Funktionen, die ein Document normalerweise hat nicht (z. B. gibt es das o.g. documentElement nicht und auch getElementById ist undefiniert).

Bin dankbar für jede Idee.

inci
 
Hi,

mit folgendem Codefragment erhalte ich für documentElement auch im IE ein Objekt:
Code:
var req = null;

function makeRequest(){
  if(window.ActiveXObject){
    req = new ActiveXObject("Microsoft.XMLHTTP");
  }else if (window.XMLHttpRequest) {
    req = new XMLHttpRequest();
  }
}

function processReq() {

    makeRequest();
    // Synchroner Request
    //req.open("GET", "test.xrf", false);
    req.open('GET', 'verzeichnis.xml', false);

    if (req.overrideMimeType){
      req.overrideMimeType("text/xml");
    }
    req.send(null);

    var doc = req.responseXML;

    alert(typeof(doc.documentElement) + "\n" + doc.documentElement.getElementsByTagName("datei").length);
}

processReq();
Zu getElementById habe ich hier schon mal Stellung genommen.

Vielleicht hilft Dir das weiter.

Ciao
Quaese
 
Zurück