XMLHttpRequest介绍

XMLHttpRequest

Ajax所依赖的技术之中唯一一个尚未正式标准化的部分就是XMLHttpRequest,不过现在W3C已经将其列入了工作草案,应该很快就会成为正式的标准。

 

1.如何创建XMLHttpRequest对象:

(1).而在非IE浏览器中创建XMLHttpRequest对象的语法如下:

  var xmlhttp = new XMLHttpRequest();

(2)而在非IE浏览器中创建XMLHttpRequest对象的语法如下:

  var xmlhttp = new XMLHttpRequest();

(3)M$IE 7.0中将能够同时支持ActiveX对象和原生的XMLHttpRequest对象的创建方法,这是一个从善如流之举。因此,当IE 7.0普及之后,创建XMLHttpRequest对象将可以使用完全相同的语法。

 

2.XMLHttpRequest与服务器通信有两种方式:同步方式和异步方式。

xmlhttp.open("GET", "http://www.blogjava.net/dlee/Rss.aspx", true);

这个参数为true代表异步,为false代表同步。

 

3.如果是使用异步方式来进行通信,还需要设置一个回调函数。

当数据返回时系统会调用这个回调函数。通过为XMLHttpRequest对象的onreadystatechange属性赋值来设置一个回调函数:

  xmlhttp.onreadystatechange=function() {...};

 

4.此外,为了很好地支持中文和国际化。

字符集一般都使用UTF-8,这可以通过调用XMLHttpRequest对象上的setRequestHeader方法来设置:

  xmlhttp.setRequestHeader("Content-Type","text/xml;charset=utf-8");

那么客户端的回调函数可以通过XMLHttpRequest对象的responseXML属性中获得XML DOM树形式的返回数据。

 

5XMLHttpRequest其实是用语不当,它其实可以使用任何纯文本格式与服务器通信,而不限于XML格式。注意上面客户和服务器两端的Content-Type设置需要对应起来,如果它们都改成text/plain

那就是使用纯文本来进行通信,在回调函数中就需要访问XMLHttpRequest对象的responseText属性来获得纯文本形式的返回数据。

 

 

6.当XMLHttpRequest对象把一个HTTP请求发送到服务器时将经历若干种状态:一直等待直到请求被处理;然后,它才接收一个响应。这样以来,脚本才正确响应各种状态-XMLHttpRequest对象暴露一个描述

对象的当前状态的readyState属性:

0 描述一种"未初始化"状态;此时,已经创建一个XMLHttpRequest对象,但是还没有初始化。

  1 描述一种"发送"状态;此时,代码已经调用了XMLHttpRequest open()方法并且XMLHttpRequest已经准备好把一个请求发送到服务器。

2 描述一种"发送"状态;此时,已经通过send()方法把一个请求发送到服务器端,但是还没有收到一个响应。

3 描述一种"正在接收"状态;此时,已经接收到HTTP响应头部信息,但是消息体部分还没有完全接收结束。

4 描述一种"已加载"状态;此时,响应已经被完全接收。

 

7.System.xml.xmlDocument

它的作用是解析xml文档,将其转换为对象,使你可以在程序中对其操作

XmlDocument 成员请参见: http://msdn2.microsoft.com/zh-cn/library/system.xml.xmldocument_members(VS.80).aspx

 

8.responseText属性

这个responseText属性包含客户端接收到的HTTP响应的文本内容。当readyState值为012时,responseText包含一个空字符串。当readyState值为3(正在接收)时,响应中包含客户端还未完成的响应信息。当readyState4(已加载)时,该responseText包含完整的响应信息。

 

9.responseXML属性

responseXML属性用于当接收到完整的HTTP响应时(readyState4)描述XML响应;此时,Content-Type头部指定MIME(媒体)类型为text/xmlapplication/xml或以+xml结尾。如果Content-Type头部并不包含这些媒体类型之一,那么responseXML的值为null。无论何时,只要readyState值不为4,那么该responseXML的值也为null

其实,这个responseXML属性值是一个文档接口类型的对象,用来描述被分析的文档。如果文档不能被分析(例如,如果文档不是良构的或不支持文档相应的字符编码),那么responseXML的值将为null

 

10.status属性

这个status属性描述了HTTP状态代码,而且其类型为short。而且,仅当readyState值为3(正在接收中)4(已加载)时,这个status属性才可用。当readyState的值小于3时试图存取status的值将引发一个异常。

 

11.statusText属性

这个statusText属性描述了HTTP状态代码文本;并且仅当readyState值为34才可用。当readyState为其它值时试图存取statusText属性将引发一个异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值