• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

AJAX Rückgabe undefined

Status
Für weitere Antworten geschlossen.

mi-schi

Neues Mitglied
Hallo,

ich bin ganz neu in das Thema AJAX eingestiegen.
Eigentlich wollte ich mit JavaScript eine externe Datei laden. Dies geht ja nicht und demnach bin ich auf AJAX gekommen.
Ich habe folgende Anleitung gelesen:
tutorial:erste-schritte [AJAX-Community]
Für meine Bedürfnisse musste ich den Code ein wenig umformen:
Code:
function ajreq(){
    if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        try {
            return new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                return new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {
                alert("Fehler!");
            }
        }
    }
    return false;
}
function readtext(filename) {
    var aja = ajreq();
    aja.open('GET', "read.php?f=" + filename, true);
    aja.onreadystatechange = function(){
        if (aja.readyState == 4 && aja.status == 200) {
            aus = aja.responseText;
        }
    };
    aja.send(null);
    if (typeof aus == 'undefined') {
        return "Fehler! undefined...";
    }
    return aus;
}
Nun wird die Funktion readtext(handle) nacheinander mehrmals auf der Seite mit unterschiedlichen handles aufgerufen.
Beim ersten mal kommt "Fehler! undefined...", ansonsten wird der Text der Datei read.php ausgegeben.
Kann mir jemand sagen woran das liegt?
PS: Ein alert(aus) nach dem aja.send(null) ergibt ein "undefined", die Ausgabe über return ist dann allerdings wieder richtig...

Und dann habe ich noch ein Problem:
Wie kann ich hier
Code:
    if (typeof aus == 'undefined') {
        return "Fehler! undefined...";
    }
den "Mutter"-Container ansprechen und seine Farbe verändern? Mit this..parentNode kommt undefined proberty...
 
Werbung:
Dass das A in AJAX für Ansychron steht, ist dir bekannt oder? D.h. du kannst nicht in der selben Funktion den Response verarbeiten, weil der Request da noch nicht fertig ist.
 
Ok habe ich verstanden. Ich muss also die Funktion ajre() vorher aufrufen. Nur irgendwie klappt das nicht. Es kommt jetzt nur noch
"Fehler! undefined..."
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben