XMLxmlHttpuest 对象
AJAX 的要点是 XMLxmlHttpuest 对象。
使用 XMLxmlHttpuest 对象对象实现异步通信一般需要以下几个步骤:
(1)定义 XMLxmlHttpuest 对象实例
(2)调用open()方法建立与服务器的连接
(3)注册onreadystatechange事件处理函数,以便接收和处理从服务器端响应的信息
(4)调用send()方法发送请求
(1)实例化XMLxmlHttpuest 对象
不同的浏览器创建 XMLxmlHttpuest 对象的方法是有差异的。 IE 浏览器使用 ActiveXObject,而其他的浏览器使用名为 XMLxmlHttpuest 的 JavaScript 内建对象。
try{
// Firefox, Opera 8.0+, Safari 等非IE浏览器
XMLHttpRequest xmlHttp=new XMLHttpRequest(); }
catch (e){
// Internet Explorer IE浏览器
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); }
catch (e){ try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); }
catch (e){
alert("您的浏览器不支持AJAX!");
return false; } } }
(2)建立连接
定义了XMLHttpRequest对象后,调用open()方法可以建立异步连接:
xmlHttp.open(method,url,async,user,password)
method:请求的方式GET/POST/PUT/PROPFIND一般都使用(GET/POST) ②打开请求,装载数据
url:即请求的地址,可以为绝对地址,也可以为相对地址
async:为可选项,设置是否为异步通信(true or false)
user和password表示请求的服务器需要进行验证
例如:xmlHttp.open("GET","test.asp","true");
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=dowork;(dowork是一个JS)
xmlHttp.send(null);
(3)绑定onreadystatechange时间处理函数
xmlHttp. onreadystatechange=response;
function response(){
可通过xmlHttp.readyState属性值跟踪通信状态或xmlhttp.responseBody,responseStream,responseText,responseXML等属性来存储服务器端不同的响应信息
readyState属性值:
0:请求未初始化(还没有调用 open())。
1:请求已经建立,但是还没有发送(还没有调用 send())
2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)。
3:请求在处理中;通常响应中已有部分数据可用了,但是服务器还没有完成响应的生成。
4:响应已完成;您可以获取并使用服务器的响应了
}
(4)通过send()方法来发送请求
xmlHttp.send(null);
一个完整的通信为:
XMLHttpRequest xmlHttp=new XMLHttpRequest();
xmlHttp.open(); 建立连接
xmlHttp.onreadystatechange=response; 绑定onreadystatechange事件
xmlHttp.send(null); 发送请求
alert(xmlHttp.response.responseText);//提示服务器端相应信息