Marco Lehmann: Dashboard Widget - merkwürdiges http_request-Objekt

Beitrag lesen

Hallo zusammen,

ich probiere mich gerade darin ein AJAX-basiertes Dashboard-Widget zu programmieren. Vielleicht erst einmal der Quelltext:

function performRequest(url, callbackFunction) {

http_request = false;

// Mozilla, Safari, ...
        if (window.XMLHttpRequest) {
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) http_request.overrideMimeType("text/xml");

// IE
  } else if (window.ActiveXObject) {
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

if (!http_request) {
   document.getElementById("searchTerm").value = "XMLHTTP-Error";
            return false;
        }
        http_request.onreadystatechange = callbackFunction;
        http_request.open("GET", url, true);
        http_request.send(null);

}

function alertContent() {

if (http_request.readyState == 4) {
            if (http_request.status == 200) {
    document.getElementById("output").value = http_request.responseText;
            } else {
    document.getElementById("output").value = "AJAX-Error:" + http_request.status;

// check http_request object
    document.getElementById("output").innerHTML = "";
    for (elem in http_request) {
     document.getElementById("output").innerHTML += elem + ": " + http_request[elem] + " - ";
    }

}
        }

}
    ...
    performRequest("http://localhost/widget/search.php?term=" + term, alertContent);
    ...

Das witzige ist, daß der readyState von http_request zwar 4 ist, der status-Wert aber undefined und somit auch responseText und responseXML unbrauchbar, weil null. Wie kommt das? Wenn ich das Widget im Safari teste, dann läuft es einwandfrei?

Danke im Voraus für jede Hilfe.

Marco