1.第一步(得到XMLHttpRequest)
*ajax其实只需要学习一个对象:XMLHttpRequest,如果掌握了它就掌握了AJAX
*得到XMLHttpRequest
>大多数浏览器都支持:var xmlHttp=new XMLHttpRequest();
>IE6.0支持:var xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
>IE5.5及更早版本的IE支持:var xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
*编写创建 XMLHttpRequest 的函数
function createXMLHttpRequest() {
try{
return new XMLHttpRequest();
}catch{
try{
return new ActiveXObject("Msxml2.XMLHTTP");
}catch{
try{
return newActiveXObject("Microsoft.XMLHTTP");
}catch{
alert("怎么可能,你用的啥浏览器。。。")
throw e;
}
}
}
}
2.第二步 (打开与服务器的连接)
*xmlHttp.open();用来打开与服务器的连接,需要三个参数;
>请求方式:GET或者POST
>请求的URL:指定服务器端资源,例如:/项目/action
>请求是否为异步:如果为True表示发送异步请求,否则为同步请求;
*xmlHttp.open("GET","/项目/action",true);
3.第三步 (发送请求)
*xmlHttp.send(null); 如果括号里不给null可能会造成部分浏览器无法发送;
>参数:就是请求体的内容,如果是GET请求,必须给null
4.第四步
*在xmlHttp对象的一个事件上注册监听器:onredaystatechange
*xmlHttp对象一共有5个状态:
>0状态:刚创建,还没有调用open()方法;
>1状态:请求开始,调用了open()方法,但还没有调用send()方法;
>2状态:调用完了send()方法;
>3状态:服务器已经开始响应,但不表示响应结束;
>4状态:服务器响应结束!(我们通常只关注这个状态!!!)
*得到xmlHttp对象的状态;
>var state =xmlHttp.redayState; //可能是0、1、2、3、4
*得到服务器的响应状态码
>var state =xmlHttp.status; //例如为200、404、500
*得到服务器的响应内容
>var content = xmlHttp.responseText; //得到服务器响应的文本格式内容;
>var content = xmlHttp.responseXML; //得到服务器响应的xml内容,它是Document对象;
xmlHttp.onredaystatechange=function() { //5种状态都会调用本方法;
if(xmlHttp.redayState==4 && xmlHttp.status==200){ //双重判断,缺一不可
//获取服务器的响应内容
var text = xmlHttp.responseText;
}
};
备注:以上就是AJAX的四大步骤,复制代码时注意标点符号