41手写 Ajax的封装

jQuery已经封装ajax,使用方法请跳转这里。 

手写代码的封装:

/*
 	method:
 			请求方式,值为get或者post
 	url:请求地址
 	data:没有值需要传入null
 		有请求数据则传入字符串数据,格式为"a=1&b=2";
 	deal200:
 			接受一个带有一个形参的js函数对象,形参接收的实参是ajax引擎对象
 	deal404:接受一个js函数对象
 	deal500:接受一个js函数对象
 */
	function myAjax(method,url,data,deal200,deal404,deal500,async){		
		//创建ajax引擎对象
			var ajax=getAjax();
			//复写onreadystatement函数
			ajax.onreadystatechange=function(){
				//判断Ajax状态吗
				if(ajax.readyState==4){
					//判断响应状态吗
					if(ajax.status==200){
						if(deal200){
							deal200(ajax);
						}
					}else if(ajax.status==404){
						if(deal404){
							deal404();
						}						
					}else if(ajax.status==500){
						if(deal500){
							deal500();
						}
					}
				}
			}
		//发送请求
		if("get"==method){
			ajax.open("get",url+(data==null?"":"?"+data),async);
			ajax.send(null);
		}else if("post"==method){
			ajax.open("post",url,async);
			ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			ajax.send(data);
		}
		
	}	
/* --------------------------------------------------------------------------- */
function getAjax(){
	var ajax;
	if(window.XMLHttpRequest){//火狐
		ajax=new XMLHttpRequest();
	}else if(window.ActiveXObject){//ie
		ajax=new ActiveXObject("Msxml2.XMLHTTP");
	}
	
	return ajax;
}	

  

posted @ 2020-02-29 14:08  Scorpicat  阅读(175)  评论(0编辑  收藏  举报