AJAX-XML Code funktioniert im Firefox aber nicht im IE

mrno

Erfahrenes Mitglied
Hi,
ich lese über ajax eine XML Datei aus. Mein Problem ist es das es im Firefox geht aber der IE 6 streikt. Aber erstmal den Code:
HTML:
http_user_request=false;
function loadData(){
 var mode=getURLParam("mode");
 var param="?path="+mode;
 url=window.location.href;
 url=url.substring(0,url.lastIndexOf("/")+1);
 url=url+"list.php";
 http_user_request=false;
 if(window.XMLHttpRequest){
  http_user_request=new XMLHttpRequest();
  if(http_user_request.overrideMimeType){
   http_user_request.overrideMimeType("text/xml");
  }
 }else if(window.ActiveXObject){
  try{
   http_user_request= new ActiveXObject("Msxml2.XMLHTTP");
  }catch(e){
   try{
   http_user_request=new ActiveXObject("Microsoft.XMLHTTP");
   }catch(e){}
  }
 }
  if(!http_user_request){
   alert('Cannot create XMLHTTP instance');
   return false;
  }
  http_user_request.onreadystatechange=setUserData;
  http_user_request.open('GET',url+param,true);
  http_user_request.send(null);
}

function setUserData(){
 if(http_user_request.readyState==4){
  if(http_user_request.status==200){
   var xmldoc=http_user_request.responseXML;
   var root=xmldoc.getElementsByTagName('root').item(0);
   alert(root.nodeType);
  }else{
   alert('There was a problem with the request.');
  }
 }
}
Das Problem liegt an dieser Zeile:
var root=xmldoc.getElementsByTagName('root').item(0);
Im Firefox gibt er mir ein Object zurück. Im IE sagt er undefine. Hat einer eine Idee warum das so ist? Hat jemand schonmal das gleiche Problem gehabt?
 
Hi,

das Script selbst scheint keine Fehler zu enthalten - zumindest läuft es mit einer XML-Datei von mir problemlos.

Wie sieht denn deine generierte XML-Datei aus?

Ciao
Quaese
 
So sieht meine XML aus. Dies ist meine Test XML. Hier bringt er die Fehlermeldung. Ich weis aber leider nicht was da falsch sein könnte.

HTML:
<?xml version="1.0" ?>
<root>
 <userelement>
  <name>Name1</name>
  <vorname>Vorname1</vorname>
  <anmeldename>Anmeldename1</anmeldename>
 </userelement>
 <userelement>
  <name>Name2</name>
  <vorname>Vorname2</vorname>
  <anmeldename>Anmeldename2</anmeldename>
 </userelement>
 <userelement>
  <name>Name3</name>
  <vorname>Vorname3</vorname>
  <anmeldename>Anmeldename3</anmeldename>
 </userelement>
</root>
 
Hi,

das XML-Dokument scheint in Ordnung zu sein.

Da das File jedoch als PHP-Datei aufgerufen wird, ist es möglich, dass der IE nicht erkennt, dass es sich um ein XML-Dokument handelt. Versuch mal, mit PHP am Anfang Dokuments einen Header zu senden, der es als XML-File auszeichnet.
Code:
header('Content-type: text/xml', true);
Ciao
Quaese
 
Zurück