var ajax = new AjaxObj(url); 
ajax.addListener(200, function(r){ 
alert(r); 
}); 
ajax.send(); 
也可以连续调用:
 
var ajax = new AjaxObj(url).addListener(200, function(r){ 
alert(r); 
}).send(); 
另外还支持自定义的POST或GET方式请求,以及监视不同的HTTP状态码,自己看代码琢磨吧 :)
完整代码:
复制代码 代码如下:
 
AjaxObj = function(url, method, content){ 
    this.r = null; 
    this.url = url; 
    this.method = method; 
    this.content = content; 
    this.header = {}; 
    this.header["Connection"] = "close"; 
    this.header["Content-type"] = "application/x-www-form-urlencoded"; 
    var self = this; 
    if(window.XMLHttpRequest){ 
        this.r = new XMLHttpRequest(); 
    }else if(window.ActiveXObject){ 
        try { 
            this.r = new ActiveXObject("Msxml2.XMLHTTP"); 
        } catch(e) { 
            try{ 
                this.r = new ActiveXObject("Microsoft.XMLHTTP"); 
            } catch(e) { 
            } 
        } 
    } 
    this.addListener = function(http_status, func){ 
        if(!this.L) 
            this.L=[]; 
        this.L[http_status] = func; 
        return this; 
    }; 
    this.setHeader = function(name, value){ 
        this.header[name] = value; 
        this.r.setRequestHeader(name, value); 
        return this; 
    }; 
    this.send = function(){ 
        if(this.method != "post" && this.method != "get") 
            this.method = "get"; 
        this.r.open(this.method, this.url, true); 
        for(var h in this.header) { 
            this.r.setRequestHeader(h, this.header[h]); 
        } 
        this.r.send(this.content); 
    }; 
    if(this.r) this.r.onreadystatechange = function(){ 
        if(self.r.readyState == 4 && self.L[self.r.status] != null) 
            self.L[self.r.status](self.r.responseText); 
    }; 
}; 
