Ajax入门:ajax的发送异步请求
ajax发送异步请求(四步):
第一步:
(得到XMLHttpRequest)
*ajax其实只需要学习一个对象,XMLHTTPRequest,如果掌握了它,就掌握了ajax!!!
*得到XMLHTTPRequest
--大多数浏览器都支持:var xmlHttp = new XMLHttpRequest();
--IE 6.0 :var xmlHttp =new ActiveXobject(“Msxm12.XMLHTTP”);
--IE 5.5以及以前 : var xmlHttp= new AtiveXObject("Microsoft.XMLHTTP");
*编写创建XMLHttpRequest对象的函数: (无需判断浏览器类型,可用下面的方式)
function createXMLHttpRequest(){
try{
return new XMLHttpRequest();
}catch(e){
try{
return new ActiveXobject("Msxm12.XMLHTTP");
}catch(e){
try{
return new AtiveXObject("Microsoft.XMLHTTP");
}catch(e){
alert("用的啥浏览器啊?");
throw e;
}
}
}
}
第二步
(打开与服务器的链接)
*xmlHttp.open() : 用来打开与服务器的链接,它需要是三个参数
--请求方式:可以是GET或Post
--请求的url:指定服务器端资源,例如、; /abc/AServlet
--请求是否为异步:如果为true表示发送异步请求,否则为同步请求
*xmlHttp.open("GET","/abc/AServlet",ture)
第三步
*xmlHttp.send(null) : 如果不给(null)可能会造成部分浏览器无法发送
-- 参数:就是请求体内容!如果是GET请求,必须给出null.
第四步
*在xmlHttp对象的一个事件上注册监听器 : onreadystatechange
--0状态:刚创建,还没有调用open()方法;
--1状态:请求已经开始,调用了open方法,但还没有调用send方法();
--2状态:调用完了send()方法了;
--3状态:服务器已经开始响应,但不表示响应结束了!
--4状态:服务器响应结束(通常我们只关心这个状态!!!)
*得到xmlHttp对象的状态
--var state = xmlHttp.readyState; //可能是 0 1 2 3 4
*得到服务器响应的状态码
-- var status = xmlHttp.status; // 例如 200 404 500
*得到服务器响应的内容
--var content = xmlHttp.responseText; //得到服务器的响应的文本格式的内容
--var content = xmlHttp.responseXML; // 得到服务器的响应的xml响应的内容他是Document对象了
例:
xmlHttp.onreadystatechange = function(){//xmlHttp的五种状态都会调用本方法
if(xmlHttp.readyState == 4 && xmlHttp.status == 200){//双重判断,判断是否为4状态,而且还要判断是否为200
//获取服务器的响应内容
var text = xmlHttp.responseText;
}
};