第二种方式的异步通信
AJAX的核心对象XMLHttpRequest
XMLHttpRequest:是XMLHTTP组件的对象,通过该对象AJAX可以像桌面应用程序一样同服务器进行数据层面的交互,不需要每次都进行刷新。
2、步骤:
1)、初始化对象,并发送XMLHttpRequest请求
针对IE7.0/8.0 firefox mozillar opera safari
xmlhr = new XMLHttpRequest();
if(xmlhttp.overrideMimeType){
xmlhttp.overrideMimeType("text/xml");
} 红色字体表示在firefox上可能出现的一个bug处理
if(window.ActiveXObject){ 如果有该ActiveXObject组件就用这个组件 分为一个新一个旧版本
较新版本MSXML2.XMLHTTP 较旧版本Microsoft.XMLHTTP
var activename=
['MSXML2.XMLHTTP ','Microsoft.XMLHTTP']
for(var i=0; i<activename.length; i++){
try{ 如果出现错误信息就交给catch来处理
xmlhttp = new ActiveXObject(activename[i]);
break;
}
catch(e){ 出现错误信息由catch来处理
}
}
}
针对IE5.0 5.5 6.0
xmlhr = new ActiveXObject();
New XMLHttpRequest
2)、指定响应处理函数
对象. Onreadystatechanges
状态 | 描述 |
0 | 初始化状态。XMLHttpRequest 对象已创建或已被 abort() 方法重置。 |
1 | open() 方法已调用,但是 send() 方法未调用。请求还没有被发送。 |
2 | Send() 方法已调用,HTTP 请求已发送到 Web 服务器。未接收到响应。 |
3 | 所有响应头部都已经接收到。响应体开始接收但未完成。 |
4 | HTTP 响应已经完全接收。 |
3)、发出HTTP请求
I、Open open("get","demo.php?type="+type,true);
I、Send
I、Status ==200表示成功
由服务器返回的HTTP 状态代码,如 200 表示成功,而 404 表示 "Not Found" 错误。当 readyState 小于 3 的时候读取这一属性会导致一个异常。
4)、处理服务器返回的数据
responseXML;
reponseText;