Gawin: Variable bleibt ausserhalb einer funktion immer undefined

Beitrag lesen

Ich schreibe gerade eine Registrierung und will das ganze mit dem XMLHttpRequest Object machen und hab mir dafür eine kleine funktion geschrieben:

var ajaxPost = function(url, params){  
  
    this.url = url;  
  
    this.params = params;  
  
  
  
    var _this = this;  
  
  
  
    try{  
  
        this.http = new XMLHttpRequest();  
  
    }catch(e){  
  
        try{  
  
            this.http = new ActiveXObject("Microsoft.XMLHTTP");  
  
        }catch(e){  
  
            this.http = false;  
  
        }  
  
    }  
  
  
  
    this.onSuccess = function(txt, xml){  
  
        //alert(txt);  
  
    }  
  
  
  
    this.http.open("POST", url, true);  
  
    //Send the proper header information along with the request  
  
    this.http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");  
  
    this.http.setRequestHeader("Content-length", params.length);  
  
    this.http.setRequestHeader("Connection", "close");  
  
  
  
    this.Do = function(){  
  
        this.http.onreadystatechange = function() {//Call a function when the state changes.  
  
            if(_this.http.readyState == 4 && _this.http.status == 200) {  
  
                _this.onSuccess(_this.http.responseText, _this.http.responseXML);  
  
            }  
  
        }  
  
        this.http.send(params);  
  
    }  
  
}

das funktioniert auch soweit aber beim ausführen gibt es ein Problem:

var test = new ajaxPost("chat.php", "cmd=check_name&name=test");  
  
    test.onSuccess = function(txt, xml){  
  
        return txt;  
  
    }  
  
    alert(test.Do());

Damit spuckt das alert immer undefined aus und wenn ich das wie folgt mache:

var bla;  
var test = new ajaxPost("chat.php", "cmd=check_name&name=test");  
  
    test.onSuccess = function(txt, xml){  
  
        bla = txt;  
        alert(bla);  
  
    }  
    test.Do();  
    alert(bla);

spuckt alert in test.onSuccess alles korreckt aus aber das alert danach dann nicht mehr. Kann mir einer sagen was ich falsch mache? ich such schon seit gestern nach ner möglichkeit den responseText auch ausserhalb der funktion zu nutzen!