Ajax—了解XMLHttpRequest对象

Ajax的一个重要对象:XMLHttpRequest,它的几个方法

open():建立到服务器的新请求。

send():向服务器发送请求。

abort():退出当前请求。

getAllResponseHeaders():把HTTP请求的所有响应首部作为键/值对返回。

GetResponseHeader(“header”):返回指定首部值。

setRequestHeader(“header”,”ualue”):把指定首部设置为所提供的值。在设置任何首部之前必须先调用open()。

下面详细地讨论这些方法

Void open(string method,string url,bollean asynch,string username,string password):这个方法会建立对服务器的调用。这是初始化一个请求的纯脚本方法。它有两个必要的参数,还有3个可选参数。要提供调用的特定方法(GET、POST、PUT),还要提供所调用资源的URL。另外还可以传递一个Boolean值,旨示这个调用是异步的还是同步的。默认值为true,表示请求本质上是异步的。如果这个参数为false,处理就会等待,直到从服务器返回响应为止。由于异步调用是使用Ajax的主要优势之一,所以倘若将这个参数设置为false,从某些程度上讲与使用XMLHttpRequest对象的初衷不太相符。不过,在某些情况下这个参数设置为false也是有用的,比如在持久存储页面之前可以先验证用户的输入。最后两个参数,允许指定一个特定的用户名和密码。

Void send(content):这个方法具体向服务器发出请求。如果请求声明为异步的,这个方法就会立即返回,否则它会等待直到接收到响应为止。可选参数可以是DOM对象的实例、输入流或者串。传入这个方法的内容会作为请求的一部分发送。

Void setRequestHeader(string header,string value):这个方法为HTTP请求中一个给定的首部设置值。需要说明,这个方法必须在调用open()之后才能调用。

在这些方法中最有可以用到的就是open()和send()。

Void abort():顾名思义,这个方法就是要停止请求。

String getResponseHeader(string header):这个方法与getAllResponseHeaders()是对应的,不这过它有一个参数表示你希望得到的指定首部值,并且把这个值作为串返回。

除了这些方法,XMLHttpRequest对象还提供了许多属性:

responseText:服务器返回的请求响应文本。

responseXML:服务器的响应,表示为XML.这个对象可以解析为一个DOM对象。

Status:服务器的HTTP状态码(200对应OK,404对应Not Found….)

StatusText:HTTP状态码的相应文本(OK或Not Found)

#所有这些代码都直接嵌套在 script 标记中。不放到方法或函数体中的 JavaScript 代码称为静态 JavaScript。就是说代码是在页面显示给用户之前的某个时候运行。

XMLHttpRequest 惟一的目的是让您发送请求和接收响应。其他一切都是 JavaScript、CSS 或页面中其他代码的工作:改变用户界面、切换图像、解释服务器返回的数据。准备好 XMLHttpRequest 之后,就可以向服务器发送请求了。

Onreadystatechange属性;

需要特别注意的是该属性在代码中设置的位置 —— 它是在调用 send() 之前 设置的。发送请求之前必须设置该属性,这样服务器在回答完成请求之后

readyState:提供当前 HTML 的就绪状态。

HTTP 就绪状态表示请求的状态或情形。它用于确定该请求是否已经开始、是否得到了响应或者请求/响应模型是否已经完成。它还可以帮助确定读取服务器提供的响应文本或数据是否安全。在 Ajax 应用程序中需要了解五种就绪状态:

  • 0:请求没有发出(在调用 open() 之前)。
  • 1:请求已经建立但还没有发出(调用 send() 之前)。
  • 2:请求已经发出正在处理之中(这里通常可以从响应得到内容头部)。
  • 3:请求已经处理,响应中通常有部分数据可用,但是服务器还没有完成响应。
       4:响应已完成,可以访问服务器响应并使用它。
posted @ 2011-05-30 20:45  zalexing  阅读(305)  评论(2编辑  收藏  举报