Ajax的四个过程
一、创建 XMLHttpRequest 对象
XMLHttpRequest 用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
1.标准浏览器
var xml =new XMLHttpRequest();
2.老浏览器
var xml = new ActiveXObject("Microsoft.XMLHTTP");
3.兼容写法
var xml;
if (window.XMLHttpRequest){
xml = new XMLHttpRequest();
}else{
xml = new ActiveXObject("Microsoft.XMLHTTP");
}
二、向服务器发送请求
XMLHttpRequest 对象用于和服务器交换数据。
1.如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open() 和 send() 方法:
xml.open("GET","test1.txt",true);
xml.send();
open(method,url,async):
method:请求的类型;GET 或 POST
url:文件在服务器上的位置
async:true(异步)或 false(同步)
send(string):
string:仅用于 POST 请求
三、服务器响应
如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。
1.如果来自服务器的响应并非 XML,使用 responseText 属性。responseText 属性返回字符串形式的响应。
oDiv.innerHTML = xml.responseText;
2.如果来自服务器的响应是 XML,而且需要作为 XML 对象进行解析,使用 responseXML 属性。
var xmlDoc=xml.responseXML;
var txt="";
var x=xmlDoc.getElementsByTagName("ARTIST");
for (i=0;i<x.length;i++){
txt=txt + x[i].childNodes[0].nodeValue + "<br />";
}
oDiv.innerHTML=txt;
四、onreadystatechange 事件
存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。
- readyState:
存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。
0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪
2.status:
200: "OK"
404: 未找到页面
xml.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
oDiv.innerHTML=xmlhttp.responseText;
}
}