function(method,url,data,success){//method:传递方式 url:地址 data:传递的数据 success:回调函数功能
xhr=null;
//创建一个ajax对象
try{
xhr = new XMLHttpRequest(); // IE6下不支持此对象
}catch(e){
xhr = new ActiveXobject("Microsoft .XMLHTTP"); // 为了兼容,加上 IE 6下的插件
}
//判断使用的什么方式传递
if(method == "get"&&data){
url+="?"+data;
}
//打开方法open()
xhr.open(method,url,true);
//method:分为两种方式:get 或 post;
//get : 有缓存问题,并且传递的内容的大小有限制,需要编码Encode,中文字符;
//post : 无缓存问题,传递内容大小无限制,无需编码。
//url :需要访问的地址
//true代表是否采用异步操作方式,true代表是,即是非阻塞模式(前面的代码不会影响后面的代码执行)
//false代表不采用同步,即阻塞方式(前面的代码会影响后面代码的执行)
if(method == "get"){
xhr.send(); // 采用get方式,发送请求,不安全
}else{// 采用post方式
xhr=setRquesetHeader("content-type","Application/x-www-form-urlencoded'");// 申请发送数据的类型的格式
xhr.send(data); //注意采用post方式,发送请求的参数
}
xhr=onreadystatechange=function(){ // 当readyState改变的时候触发
if(xhr.readyState==4){ //readyState : ajax工作状态:1,2,3,4,一共4个步骤
if(xhr.status==200){ //status : 服务器状态,http状态码
success()&&success(xhr.responseText);//responsText代表是ajax对象的属性,返回获取到的内容,
//success()函数类似回调函数的功能,该句的意思即存在该函数,就执行该函数,并传递出获取的内容,与页面进行交互
}else{
alert("error:"+xhr.state);//如果服务器状态不是200,即没有获取到内容,报错,返回错误的原因
}
}
}
}