ajax的简单封装


//--------------------------------------------------------------------------------------

//封装XMLHTTP的Request类的代码
var $ajax = new Object();
function getAjax() {
    var ajax = false;
    try {
        ajax = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
        try {
            ajax = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (E) {
            ajax = false;
        }
    }
    if (!ajax && typeof XMLHttpRequest != 'undefined') {
        ajax = new XMLHttpRequest();
    }
    return ajax;
}
//封装XMLHTTP向服务器发送请求的操作
$ajax.send = function (url, method, callback, data) {
    var req = getAjax();  //得到一个XMLHTTP的实例
    //当XMLHTTP的请求状态发生改变时调用
    req.onreadystatechange = function () {
        // 当请求已经加载
        if (req.readyState == 4) {
            // 当请求返回成功
            if (req.status == 200) {
                // 当定义了成功回调函数时,执行成功回调函数
                if (callback)
                    callback(req, data);
            }
            // 当请求返回错误
            else {
                alert("当加载数据时发生错误 :\n" + req.status + "/" + req.statusText);
            }
            try {
                delete req;
                req = null;
            } catch (e) { }
        }
    }
    //如果以POST方式回发服务器
    if (method == "POST") {
        req.open("POST", url, true);
        req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        req.send(data);
    }
    //以GET方式请求
    else {
        req.open("GET", url, true);
        req.send(null);
    }
}

//进一步封装XMLHTTP以POST方式发送请求时的代码
$ajax.sendPOST = function (url, data, callback) {
    $ajax.send(url, "POST", callback, data);
}
//进一步封装XMLHTTP以GET方式发送请求时的代码
$ajax.sendGET = function (url, callback, args) {
    return $ajax.send(url, "GET", callback, args);
}

//--------------------------------------------------------------------------------------

以上代码很容易但是完成了ajax的基本需求用法也很简单:

 $ajax.sendPOST("Handler.ashx", "action=reply&" + parameter,

  function (req, data) {
                    var rel=req.responseText;

  }

 );

posted @ 2011-09-05 22:29  刘凯威  阅读(307)  评论(0编辑  收藏  举报