Here's my script:
var Ajax = {
    init: function(){
        try{            
            this.xmlHttp = new XMLHttpRequest();            
        }        
        catch( e ){            
            try{                
                this.xmlHttp = new ActiveXObject( "Microsoft.XMLHttp" );                
            }            
            catch( e ){                
            }            
        }        
        return this;
    },
    get: function( url , async , fn ){
        this.xmlHttp.open( "GET" , url , async );
        console.log( "1" );
        this.xmlHttp.setRequestHeader( 'Content-Type' , 'application/x-www-form-urlencoded' );
        console.log( this.xmlHttp.readyState );
        this.xmlHttp.onreadystatechange = function(){
            console.log( "3" );
            if( this.xmlHttp.readyState == 4 ){
                if( this.xmlHttp.status == 200 ){
                    try{
                        if( fn ) return fn( this.xmlHttp.responseText );
                    }
                    catch( e ){
                        alert( e );
                    }
                }
                else alert( "bad status" );
            }
            else alert( "bad state" );
        }
    }
}
And the line to call it:
Ajax.init().get( "localhost/engine.php" , true , function( txt ){alert(txt)});
Now, at the console I get this:
1
1
Hence, I understand the running stucks at this.xmlHttp.onreadystatechange = function(){ while the readyState is 1. Could you, please, tell me, what's wrong here? Am I missing some bigger error here?
After researching a bit, it seems like the xmlHttp does not really open the url (no request is seen in Chrome's console and Firebug)...