Browserproblem mit HTTP Request...

Kahmoon

Erfahrenes Mitglied
Servus,

im IE läd er mir das XML File nicht....bzw gibt null Datensätze zurück. In FF gehts prima. Ich vermute das es am XMLHttpRequest Aufruf für IE liegt....aber ich weiß nicht wie sonst ;-). Vielleicht hat ja von Euch jeman ne Idee.

Code:
        //Browsercheck
        var XMLHTTP = null;
        
        //FF
        if(window.XMLHttpRequest)
        {
            XMLHTTP = new XMLHttpRequest();            
        }
        //IE
        else if(window.ActiveXObject)
        {
            XMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");            
        }

        XMLHTTP.open("GET", "xml/daten.xml");        
        XMLHTTP.send(null);
        
        var xml = XMLHTTP.responseXML;
        var jobs = xml.getElementsByTagName("job");

Hier das XML File
Code:
<?xml version="1.0" encoding="iso-8859-1"?>
<uebersicht>
	<job>
		<jobname>R660</jobname>
		<status>ABORTED</status>
		<logfile>link</logfile>
	</job>
	<job>
		<jobname>R510</jobname>
		<status>COMPLETED</status>
		<logfile>link</logfile>
	</job>
</uebersicht>


Gruß
Franky
 
Zuletzt bearbeitet:
interessant wäre zu wissen, ob ein Ajax-Objekt erzeugt wurde, denn Microsoft hat 3-4 verschiedene Konstruktor-Parameter um solch ein Objekt zu erstellen.
Aber ich der Fehler liegt woanders ;)
Ajax wird asynchron ausgeführt, weshalb die Daten schon geladen sein können, wenn du auf das XML zugreifen willst, aber sie müssen es nicht, man verwendet deshalb die Methode onReadyStateChange (oder so ähnlich^^) frage mal google danach, der wird dir einige Ergebnisse geben.
 
ja das hatte ich am Anfang schon drin....aber erklärt das warum es im FF geht und IE nicht? Ich brauche es vor allem NUR für den IE 6 :(

Edit: Gleiches Ergebnis...FF geht, im IE Keine Daten. Status ist im IE aber 4. Also vollständig....grrrr. Liegt wohl wirklich am MS IE Objekt.
Code:
//Browsercheck
var XMLHTTP = null;

//FF
if(window.XMLHttpRequest)
{
	XMLHTTP = new XMLHttpRequest();			
}
//IE
else if(window.ActiveXObject)
{
	XMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");			
}

window.onload = function()
{
	XMLHTTP.open("GET", "xml/daten.xml");	
	XMLHTTP.onreadystatechange = DatenLaden;	
	XMLHTTP.send(null);
}


function DatenLaden()
{						
	var xml = XMLHTTP.responseXML;
	var jobs = xml.getElementsByTagName("job");
	//alert(jobs.length);	
	
	for(var i=0; i < jobs.length; i++)
	{		
		var jobname = xml.getElementsByTagName("jobname")[i].firstChild.nodeValue;
		var status = xml.getElementsByTagName("status")[i].firstChild.nodeValue;
		var farbe = '';
		
		switch(status)
		{
			case "COMPLETED":
			farbe = '#00FF33';
			break;
			
			case "ABORTED":
			farbe = '#FF0000';
			break;
			
			case "RUNNING":
			farbe = '#0099CC';
			break;
			
			case "EVENT WAIT":
			farbe = '#FFFF00';
			break;			
		}
		
		//Farbe setzen
		document.getElementById(jobname).style.backgroundColor = farbe;
		
	}		
}
 
Zuletzt bearbeitet:
Hi!

Gib' mal den Content-Länge per Header mit:

http.setRequestHeader("Content-Length", 0);

Hast du schonmal geschaut, ob überhaput was zurückkommt (per responseText).
Wenn ja, liegt es an der Gültigkeit des xml-Dokuments. Obwohl eigentlich der FF pingeliger ist ...

Aber gib' nicht auf! Ich hatte Anfangs auch Probleme mit JS und xml. Habe es aber hinbekommen und möchte es nicht mehr missen
 
Danke....ich bin jetzt aber umgeschwenkt auf textfiles. Das Objekt hab ich inzwischen richtig initialisiert aber responseXML liefert mir nix zurück. Im FF gings wie gesagt :(
 

Neue Beiträge

Zurück