ChrisB: Ajax-Post-Request

Beitrag lesen

Hi,

try
{
httpObject = new XMLHttpRequest();
}
catch (ms)
{
try
{
        httpObject = new ActiveXObject("Msxml2.XMLHTTP");
    }
catch (nonms)
{
     try
  {
         httpObject = new ActiveXObject("Microsoft.XMLHTTP");
     }

Den ganzen try-catch-Kaese wuerde ich mir sparen - zu Gunsten dieser simplen 3-Zeilen-Loesung: http://design-noir.de/webdev/JS/XMLHttpRequest-IE/

(M.W. nutzt der IE sowieso immer die aktuellse verfuegbare XMLHTTP-Version, wenn man einfach ein neues ActiveX-Objekt vom Typ Microsoft.XMLHTTP erzeugt. Und selbst wenn dem nicht so waere, moechte mir bitte erst mal jemand erklaeren, wo die Nachteile laegen, wenn er's nicht taete.)

Ach ja, die Fehlerkonsole sagt:

Fehler: httpObject is null
Quelldatei: http://www.example.com/ajax/test.php
Zeile: 16

Das wird wohl daran liegen, dass du die Variable selbst nach dem oeffnen und absenden des Request wieder auf null gesetzt hast:

var httpObject = null;

Du setzt einen *asynchronen* Request ab, also "wartet" der JS-Interpreter mit der Ausfuehrung des restlichen Codes nicht, bis ein Ergebnis des Requests da ist.

Du schickst ab, du nullst das Objekt - und irgendwann spaeter feuert der readystatechange-Event, und will auf httpObject zugreifen - das hast du aber vorher bereits umweltgerecht entsorgen lassen.

MfG ChrisB

--
„This is the author's opinion, not necessarily that of Starbucks.“