AJAX学习笔记(六)_重构

来源:互联网 发布:人工智能bob和alice 编辑:程序博客网 时间:2024/06/09 08:54

var net = new Object();//定义全局变量net//编写构造函数net.AjaxRequest = function(url,onload,onerror,method,params){    this.req = null;    this.onload = onload;    this.onerror =(onerror)?onerror:this.defaultError;    this.loadDate(url,method,params);};//编写用于初始化XMLHTTPRequest对象并制定 处理函数,最后发送http请求的方法net.AjaxRequest.prototype.loadDate = function(url,method,params){    if(!method){        method = "GET";    }    if(window.XMLHttpRequest){        this.req = new XMLHttpRequest();    }else if(window.ActiveXObject){        this.req = new ActiveXObject();    }    if(this.req){        try{            var loader = this;            this.req.onreadystatechange = function(){                net.AjaxRequest.OnReadyState.call(loader);            };            this.req.open(method,url,true);            if(method="POST"){                this.req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");            }            this.send(params);        }catch(err){            this.error.call(this);        }    }};//重构回调函数net.AjaxRequest.onReadyState = function(){    var req = this.req;    var ready = req.readystate;    if(ready == 4){        if(req.status == 200){            this.onload.call(this);        }else{            this.onerror.call(this);        }    }};//重构默认的错误函数net.AjaxRequest.prototype.defaultError = function(){    alert("错误数据\n\n回调状态:" + this.req.readyState + "\n 状态:" + this.req.status);};

可保存为AjaxRequest.js文件,需要时引入即可。