读书人

Ajax中施用XMLHttpRequest

发布时间: 2012-10-24 14:15:58 作者: rapoo

Ajax中使用XMLHttpRequest
大家都知道使用ajax技术,他是几种技术的结合:同过异步xhr方法与服务器通信,对服务器返回结果通过js来操作界面上dom元素,在界面上展现返回结果,当然还有css的美化和修饰。

现在大多数主要的js库中都封装了,所以在大多数情况下无需开发者过多的关注。个人为了更加升入了解特此记录。
直接上代码;


由于浏览器各自实现方式不同所以在生成xhr对象时候还需要考虑兼容性.

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

发送请求:
open() 配置好之后,就可以发送请求了。

open方法有五个参数:
  request-type:发送请求的类型。典型值是 GET 或 POST,也可发送HEAD请求。
  url:要连接的 URL地址。
  asynch:如使用异步连接则为 true,否则为 false。该参数可选,默认为 true。
  username:如果需要身份验证,则可以在此指定用户名。该可选参数没有默认值。
  password:如果需要身份验证,则可以在此指定口令。该可选参数没有默认值。
通常使用前三个参数。即使需要异步连接,也应指定第三个参数为true。这是默认值。

send() 只有一个参数,就是要发送的内容。虽然可以使用 send() 发送数据,但也能通过 URL 本身发送数据。用 URL 发送数据要容易得多。如果需要发送安全信息或 XML,可能要考虑使用 send() 发送内容。如果不需要通过 send() 传递数据,则只要传递 null 作为该方法的参数即可。

回调方法:
XMLHttpRequest对象的一个简单属性 onreadystatechange。


根据浏览器的不同,在表单停止弹出警告之前会看到两次、三次甚至四次警告。这是还没有考虑 HTTP 就绪状态,这是请求/响应循环中的一个重要部分。

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

0:请求没有发出(在调用 open() 之前)。

  1:请求已经建立但还没有发出(调用 send() 之前)。

  2:请求已经发出正在处理之中(这里通常可以从响应得到内容头部)。

  3:请求已经处理,响应中通常有部分数据可用,但是服务器还没有完成响应。

  4:响应已完成,可以访问服务器响应并使用它。

HTTP 状态码:
request.status = 200,404等服务器响应状态码。

读取响应文本:
request.responseText

参考:
http://www.cnblogs.com/meil/archive/2006/09/21/510794.html

读书人网 >XML SOAP

热点推荐