Einzelnen Beitrag anzeigen

Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#1

[HTML/JS] Probleme mit XMLHttpRequest

  Alt 11. Jan 2006, 21:03
Ich glaube ich sollte mit HTML aufhoeren

Ich spiele grad wieder mit AJAX rum, stosse dabei auf ein paar kleinere Probleme. Ich erzeuge mein XMLHttpRequest-Objekt, und schicke die Anfrage an den Server. So weit so gut, ich krieg sogar das korrekte Ergebnis als XML zurueckgeliefert. Allerdings scheinen ein paar Sachen doch nicht zu klappen. Zuerst mal Code:
Code:
function getFirstTagValue(tagname, haystack)
{
   var tag_array = haystack.getElementsByTagName(tagname);
   return (tag_array.length > 0) ? tag_array[0].firstChild.data : '';
}

var response = request.responseXML.documentElement;
alert(request.responseText);
//Don't react if no valid response was received
if (response != null)
{
   result_code = getFirstTagValue('result', response);
   
   if (result_code == AJAX_POST_SUBJECT_EDITED)
   {
      subject = getFirstTagValue('subject', response);
      editmessage = getFirstTagValue('editmessage', response);
   }
   else
   {
      error_msg = getFirstTagValue('error_msg', response);
   }
}
Der untere Teil ist der Teil, der ausgefuehrt wird, wenn die Anfrage erfolgreich abgeschlossen wurde. Nun, das waere ja eigentlich kein Problem, wenn da nicht die Browser waeren. Der IE gibt zwar responseText aus, responseXML ist aber NULL. Der Firefox hingegen findet sogar das responseXML, kriegt beim Auslesen der Werte mit getFirstTagValue aber nur einen leeren String, also ist tag_array.length in getFirstTagValue einfach 0. Das Lustige ist, dass es bis vor 2 Stunden ohne Probleme funktioniert hat, und urploetzlich nicht mehr funktioniert.

Das XML selbst wird von einer PHP-Datei generiert, und zwar mit den folgenden Headern:
Code:
header('Content-Type: application/xml');
header('Expires: Thu, 15 Aug 1984 13:30:00 GMT');
header('Last-Modified: '. gmdate('D, d M Y H:i:s') .' GMT');
header('Cache-Control: no-cache, must-revalidate'); // HTTP/1.1
header('Pragma: no-cache');                         // HTTP/1.0
und folgendem Inhalt:
Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<response>
   <result>3</result>
   <subject>Welcome</subject>
   <editmessage></editmessage>
</response>
Wie gesagt, das Ergebnis kommt korrekt an, allerdings beissen sich die Browser am XML die Zaehne aus Kann mir jemand evtl. weiterhelfen?

Greetz
alcaeus

PS: Falls jemand ein geeigneteres Forum fuer solche Fragen kennt, erleuchtet mich
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat