ASP  XMLHttpRequest对象属性
创建好XMLHttpRequest对象之后,就可以调用该对象的方法和属性进行数据异步传输了。首先介绍该对象的属性,如表7-1所示,下面将会详细讨论这些属性。
表7-1  XMLHttpRequest对象属性
属性
说明
onreadystatechange
指定当readyState属性改变时的事件处理句柄,只写。
asp 字符串转数组
readyState
返回当前请求的状态,只读。
responseBody
将回应信息正文以unsigned byte数组形式返回,只读。
responseStream
Ado Stream对象的形式返回响应信息,只读。
responseText
将响应信息作为字符串返回,只读。
responseXML
将响应信息格式化为Xml Document对象并返回,只读。
status
返回当前请求的http状态码,只读。
statusText
返回当前请求的响应行状态,只读。
下面列举XmlHttpRequest对象,所包含属性的一些详细内容及应用。
1.onreadystatechange属性
onreadystatechange属性表示当每个状态改变时都会触发这个事件处理器,通常会调用一个JavaScript函数。即当服务器返回数据到客户端时,需要相应的JavaScript函数去处理这些数据,而这个JavaScript函数就使用该属性定义。
2.readyState属性
readyState用来表示请求的状态。有5个可取值,分别为:
0  表示未初始化,即对象已建立,但是尚未初始化(尚未调用open方法)。
1  表示正在加载,此时对象已建立,尚未调用send方法。
2  表示已加载,即send方法已调用,但是当前的状态及http头未知。
3  表示交互中,此时已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误。
4  表示完成,即数据接收完毕,此时可以通过responseBody和responseText获取完整的回应数据。
3.responseBody属性
当服务器返回请求的状态为完成时,可以通过此属性来获得接收的数据,该属性得到的是二进制的byte流。语法如下所示:
byte[] sponseBody
4.responseStream属性
以ADO Stream对象的形式返回响应信息,语法如下所示:
object sponseStream
5.responseText属性
该属性表示服务器的文本响应,其处理结果以字符串形式返回,XMLHttpRequest默认将响
应数据的编码定为UTF-8。如果服务器返回的是XML文档,此属性并不处理XML文档中的编码声明,需要使用responseXML来处理。
6.responseXML属性
该属性表示服务器的响应,其结果以XML文件格式返回。这个对象可以解析为一个DOM对象。即将响应信息格式化为Xml Document对象并返回。如果响应数据不是有效的XML文档,此属性本身不返回XML DOM Parse Error,可以通过处理过的DOM Document对象获取错误信息。
7.status属性
该属性指明请求是否已成功,还可以揭示请求失败的确切原因。返回值的为一个三位数,格式是1XX~5XX,但不是中间的所有数字,如表7-2中对常用的一些做了简单说明。
表7-2  status属性值的含义
属性值
说明
例子
100~101
些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或者多个 1xx 响应。
100表示继续:初始的请求已经接受,客户应当继续发送请求的其余部分。
200~206
这类状态代码表明服务器成功地接受了客户端请求。
200表示一切正常,对GETPOST请求的应答文档跟在后面。
300~307
客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或者通过代理服务器重复该请求。
300表示多种选择:客户请求的文档可以在多个位置到,这些位置已经在返回的文档内列出。如果服务器要提出优先选择,则应该在Location应答头指明。
400~423
发生错误,客户端似乎有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份验证信息。
404资源未到:无法到指定位置的资源。这也是一个常用的应答。
500~505
服务器由于遇到错误而不能完成该请求。
505HTTP版本不支持:服务器不支持请求中所指明的HTTP版本。
8.status属性
这个statusText属性描述了HTTP状态代码文本;并且仅当readyState值为3或者4时才可用。当readyState为其它值时试图存取statusText属性将引发一个异常。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。