自己写jQuery-ajax插件,XMLHttpRequest,支持回调,兼容ie、ff、360等浏览器

jquery.kl.ajax.js

。kl  为命名空间

。使用必须有jquery.js


/*
 *该插件用于异步调取数据
 *readyState
	 *0:请求未初始化
	 *1:请求已经建立,但是还没有发送
	 *2:请求已发送,正在处理中
	 *3:请求在处理中
	 *4:响应已完成
 *status
	 *401:未经授权
	 *403:禁止访问
	 *404:没找到访问页
	 *200:正常
 *email [email protected]
 */
jQuery.kl = {
	ajax: function (options) {
		var defaults = {
			//发送方式 (可选 post、get)
			method: "post",
			//网址
			url: "#",
			//是否异步 (可选true、false)
			async: true,
			//用户名
			user: null,
			//密码
			password: null,
			//回调方法
			callBack: function (data) {
				//data 返回的数据
			}
		};
		var o = jQuery.extend(defaults, options);
		//method
		if (o.method != "post" && o.method != "get") {
			__log("'method' 参数无效. \r\n 应该为 'post' 或者 'get' .");
			return;
		}
		//url
		if (jQuery.trim(o.url) == "" || o.url == "#") {
			__log("'url' 参数无效 .");
			return;
		}
		//async
		if (jQuery.trim(o.async) == "" || (o.async != true && o.async != false)) {
			__log("'async' 参数无效. \r\n 应该为 true 或者 false .");
			return;
		}
		//callBack
		if (typeof (o.callBack) != "function") {
			__log("'callBack' 参数无效. \r\n 应该为 'function' 支持传一个参数,该参数为返回的数据 .");
			return;
		}
		var xhr = null;
		//创建ajax
		try {
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				try {
					xhr = new XMLHttpRequest();
				} catch (e) {
					__log("您的浏览器不支持ajax .");
					return;
				}
			}
		}
		//状态改变回调函数
		xhr.onreadystatechange = function () {
			//响应已完成
			if (xhr.readyState == 4) {
				//成功
				if (xhr.status == 200) {
					//回调
					o.callBack(xhr.responseText);
				}
				else {
					//判断错误
					switch (xhr.status) {
						case 401:
							__log("调用出错了. \r\n 错误原因:未经授权 .");
							break;
						case 403:
							__log("调用出错了. \r\n 错误原因:禁止访问 .");
							break;
						case 404:
							__log("调用出错了. \r\n 错误原因:没找到访问页 .");
							break;
						default:
							__log("调用出错了. \r\n 错误原因:未知错误 .");
							break;
					}
				}
			}
		};
		//open
		xhr.open(o.method, o.url, o.async, o.user, o.password);
		//send
		xhr.send(null);
	}
};

/*
 *向控制台输出错误
 */
function __log(text) {
	if (window.console && window.console.log) {
		window.console.log(text);
	}
};



页面调用





    
    
    
    Jquery 插件 开发


    






你可能感兴趣的:(c#(asp.net))