Goodjee: Ajax InternetExplorer muckt

Folgender Code funktioniert leider nur mit Firefox, sobald man ein neben dem script liegendes xmlfile öffnen will blockirt der ie.

<script type="text/javascript">
 var selectv=0;
 var page=1;
 function ajaxObject(url)
 {
  var xmlHttp;
  try
   {
    xmlHttp=new XMLHttpRequest();
   }
  catch (e)
  {
   // Internet Explorer
   try
   {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
   }
   catch (e)
   {
    try
    {
     xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (e)
    {
     alert("Your browser does not support AJAX!");
     return false;
    }
   }
  }
  xmlHttp.onreadystatechange=function update()
  {
   if(xmlHttp.readyState==4)
   {
    var xml=xmlHttp.responseXML.documentElement;
    switch(xml.getElementsByTagName("type")[0].childNodes[0].nodeValue)
    {
     case "vote":
      loadQuestion(xml);
      break;
     case "content":
      loadContent(xml);
      break;
     default:
                       alert(xml.getElementsByTagName("type")[0].childNodes[0].nodeValue);
                       break;
    }
   }
  }
  xmlHttp.open("GET",url,true);
  xmlHttp.send(null);
 }

  1. Habe ein ähnliches problem, daher poste ich einfach mal auch hier.

    alert(XMLHTTP.getAllResponseHeaders()); liefert garnichts (also "" - und nicht null oder ähnliches)

    var xml = XMLHTTP.responseXML;
    var category = xml.getElementsByTagName("category");
    alert(category.length); // --> liefert 0
    alert(XMLHTTP.responseXML); // --> liefert [object]

    allerdings liefert:
    alert(XMLHTTP.responseText);

    die komplette XML-File in einer alertbox. jemand eine idee was falsch sein kann?

    1. Hi,

      var xml = XMLHTTP.responseXML;
      var category = xml.getElementsByTagName("category");
      alert(category.length); // --> liefert 0

      allerdings liefert:
      alert(XMLHTTP.responseText);

      die komplette XML-File in einer alertbox. jemand eine idee was falsch sein kann?

      Du hast vermutlich die XML-Ressource nicht mit einem passenden Content-Type-Header ausliefern lassen, so dass sie als normaler Text betrachtet wird. Und Text hat nun mal keine "Elements", auf die irgendwie zugegriffen werden koennte - Text ist von Anfang bis Ende "ein Stueck".

      MfG ChrisB

      --
      "The Internet: Technological marvel of marvels - but if you don't know *what* you're lookin' for on the Internet, it is nothing but a time-sucking vortex from hell."
  2. Hi,

    Folgender Code funktioniert leider nur mit Firefox, sobald man ein neben dem script liegendes xmlfile öffnen will blockirt der ie.

    Und "blockiert" heisst was ...?
    seufz

    xmlHttp.onreadystatechange=function update() { ... }
      xmlHttp.open("GET",url,true);
      xmlHttp.send(null);

    Mal andersherum probiert - erst open, dann readystatehandler setzen, und dann send-en?

    MfG ChrisB

    --
    "The Internet: Technological marvel of marvels - but if you don't know *what* you're lookin' for on the Internet, it is nothing but a time-sucking vortex from hell."