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;
}
);