Wo liegt mein Fehler?

mkoeni1

Erfahrenes Mitglied
Hallo Leute,

irgendwie finde ich den Fehler nicht in einem meiner Scripte.
Aus einem trotzdem guten Ajax Buch habe ich folgende 3 Dateien übernommen. Im Browser steht jetzt lediglich "Hello Server!". Es fehlt einfach die Antwort von Server. Irgendwie klappt das nicht. Hier meine Dateien. Die HTML Datei gibt ein Feedback.


PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
    <head>
        <title>AJAX Foundations: Using XMLHttpRequest</title>
        <script type="text/javascript" src="async.js"></script>
    </head>
    <body onload="process()">
        Hello Server!
        <br />
        <div id="myDivElement"></div>
    </body>

</html>


PHP:
// speichert eine Instanz von XMLHttpRequest
var xmlHttp = createXmlHttpRequestObject();

// erzeugt eine XMLHttpRequest-Instanz
function createXmlHttpRequestObject()
{
    // speichert die Referenz auf das XMLHttpRequest-Object
    var xmlHttp;
    // dies müsste auf allen Browsern außer auf IE 6 und älter funktionieren
    try
    {
        // versucht ein XMLHttpRequest-Object zu erzeugen
        xmlHttp = new XMLHttpRequest();
    }
    catch(e)
    {
        // für IE oder älter
        var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
                                        "MSXML2.XMLHTTP.5.0",
                                        "MSXML2.XMLHTTP.4.0",
                                        "MSXML2.XMLHTTP.3.0",
                                        "MSXML2.XMLHTTP",
                                        "Microsoft.XMLHTTP");
        // probiert die Prog-IDs durch, bis eine funktioniert
        for (var i=0; i <XmlHttpVersions.length && !xmlHttp; i++)
        {
            try
            {
                // versucht, ein XmlHttpRequest-Object zu erzeugen
                xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
            }
            catch(e) {}
        }
    }
    // gibt das erzeugte Object oder eine Fehlermeldung zurück
    if(!xmlHttp)
        alert("Error creating the XMLHttpRequest object.");
    else
        return xmlHttp;
}


// wird aufgerufen, um eine Datei vom Server zu lesen
function process()
{
    alert("test");
    // nur fortfahren, wenn xmlHttp nicht leer ist
    if(xmlHttp)
    {
        // Versuch einer Serververbindung
        try
        {
            // liest die Datei async.txt auf dem Server
            xmlHttp.open("GET", "async.txt", true);
            xmlHttp.onreadystatechange = handleRequestStateChange;
            xmlHttp.send(null);
        }
        // zeigt einen Fehler an, falls er auftritt
        catch(e)
        {
            alert("Can't connect to Server:\n" + e.toString());
        }
    }
}


// Funktion zur Behandlung der HTTP-Antwort
function handleRequestStateChange()
{
    // beschafft eine Referenz auf das <div> Element auf der Seite
    myDiv = document.getElementById("myDivElement");
    // zeigt den Status des Requests an
    if (xmlHttp.readyState == 1)
    {
        myDiv.innerHTML += "Request status: 1 (loading) <br/>";
    }
    else if (xmlHttp.readyState == 2)
    {
        myDiv.innerHTML += "Request status: 2 (loaded) <br/>";
    }
    else if (xmlHttp.readyState == 3)
    {
        myDiv.innerHTML += "Request status: 3 (interactive) <br/>";
    }
    // ist readyState 4, lesen wir auch die Server Antwort
    else if (xmlHttp.readyState == 4)
    {
        // nur weitermachen, wenn Http-Status "OK"
        if (xmlHttp.status == 200)
        {
            try
            {
                // liest die Meldung vom Server
                response = xmlHttp.responseText;
                // zeigt die Meldung an
                myDiv.innerHTML += "Request status: 4 (complete). Server said: <br/>";
                myDiv.innerHTML += response;
            }
            catch(e)
            {
                // zeigt Fehlermeldung an
                alert("Error reading the response: " + e.toString());
            }
        }
        else
        {
            // zeigt Statusmeldung an
            alert("There was a problem retrieving the data:\n " + 
                xmlHttp.statusText);
        }
    }    
}





}

und die txt datei mit der Zeile:
"Hello Client!"

Kann mir jemand Helfen, ich denke es ist ein Druckfehler im Buch.


Matze
 
Hi.

Die letzte Klammer ist zuviel.

Gruß

PS: Für's nächste Mal solltest du ruhig in die Fehlerkonsole des Browsers schauen und die Fehlermeldung dazuschreiben.
 
Hi,

danke für den Hinweis. Ich habe das nicht gesehen.

PS: Die Idee mit der Fehlerkonsole ist gut, habe mir dazu FireBug installiert ;)

Danke
Matze
 
Zurück