XMLHttpRequest对象概述
如今的互联网正如火如荼地走向web2.0,它已
不知不觉中蔓延到互联网各个角落。这一切正是由于ajax技术的出现,使得web应用程序的用户体验得到了很大的改善。ajax与其说是一种技术,不如说是一种技巧,但是如果没有XMLHttpRequest的广泛支持,可能就不会有web2.0的出现。
XMLHttpRequest最早是在IE5中以ActiveX组件的形式实现的,至今,在Mozilla和Safari1.2中已把它采用为事实上的标 准,使得XMLHttpRequest得到广泛的支持。在使用XMLHttpRequest对象发送请求和处理响应之前,必须先用javascript创 建一个XMLHttpRequest兑现个,由于XMLHttpRequest不是一个W3C表转,所以要采用多种方法来创建 XMLHttpRequest的实例。代码如下:
var xmlhttp;
function createXMLHttpRequest(){
if (window.ActiveXObject)
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
else if(window.XMLHttpRequest)
xmlhttp = new XMLHttpRequest();
}
从上面代码可以看出,在IE中把XMLHttpRequest实现为一个ActiveX对象,其它浏览器把它作为一个本地JavaScript对象。
创建了XMLHttpRequest对象后就可以使用它的方法和属性进行操作。以下列出了标准XMLHttpRequest操作:
(1)void open(string method, string url, boolean asynch, string username, string password)
作用:建立对服务器的调用
参数说明:它有两个必要的参数,method是提供调用的特定方法(GET, POST或PUT),URL是提供所调用资源的URL。其它的三个为可选参数,asynch是指示这个调用是异步的还是同步的,默认为true, 表示请求为异步的,处理请求时不用等待直到从服务器返回响应为止。
(2)void send(content)
作用:向服务器发送请求,如果请求声明为异步的,这个方法就立即返回,否则它会等待直到接收到响应为止。
参数说明:参数可以是DOM对象实例、输入流,或者串。传入的这个方法的内容会做为请求体的一部分发送。
(3)void setRequestHeader(string header, string value)
作用:为HTTP请求一个给定的header设定值
(4)void abort( )
作用:停止请求
(5)string getAllResponseHeaders( )
作用:返回HTTP请求的所有相应的header
(6)string getResponseHeader(string header)
作用:返回指定的HTTP请求的相应的header
除了以上标准方法,XMLHttpRequest对象还提供了许多属性,以下列出了在处理XMLHttpRequest时可以使用的属性:
(1)onreadystatechange
每个状态改变时都会出发这个事件处理器,通常会调用一个JavaScript函数
(2)readyState
请求的状态。有5个可取值:0=未初始化,1=正在加载, 2=已加载,3=交互中,4=完成
(3)responseText
服务器的响应,表示一个串
(4)responseXML
服务器的响应,表示为XML,这个对象可以解析为一个DOM对象
(5)status
服务器的HTTP状态码(200对应OK,404对应Not Found,等等)
(6)statusText
HTTP状态码的相应文本(OK或Not Found等等)