您的位置:首页 > 理论基础 > 计算机网络

AJAX——XMLHttpRequest对象主要属性和事件

2014-09-11 00:04 603 查看

readyState属性

有5个取值:0、1、2、3、4,表示HTTP请求的状态和服务器的响应。此属性的值一般不会递减,除非在正在进行的请求中调用了abort()或open()方法。理论上,每当这个属性的值发生变化时都会触发readyStateChange事件,但实际上,只有此属性改变为4时才会触发readyStateChange事件。

readyState值

含义

0

初始值,XMLHttpRequest对象刚刚创建时,或刚调用了abort()方法后

1

已经调用了open()方法,但还未调用send()方法,即还未发送请求

2

已经调用了send()方法,也已经收到了响应头,但还未收到响应主体

3

正在接收响应主体,但还未完成

4

HTTP响应已经全部接收完毕,或由于错误而停止

responseText属性

此属性值为字符串String

当readyState<3,此属性为空字符串;
当readyState=3,此属性值为目前已经接收到的响应主体部分;
当readyState=4,此属性值为响应的全部主体

responseXML属性

请求响应为有效的XML或HTML文档时,此属性值为Document对象;当响应主体还没有就绪,或不是有效的XML或HTML文档,此属性值为null。

status属性与statusText属性

status属性指服务器返回的HTTP状态码,statusText属性则指HTTP状态码对应的文本说明。

事件处理程序

onabort

当请求中止时触发

onload

当请求成功时触发

onloadend

在请求成功或者失败时触发;load、abort、error、timeout事件发生之后

onloadstart

当请求开始时触发

onreadystatechange

当readyStateChange属性改变时触发

ontimeout

当timeout属性指定的时间已经过去但响应依旧没有完成时触发

onerror

当请求因错误失败时触发。注意404等状态码不是error,因为此时响应仍然是成功完成的。

onprogress

当响应主体正在下载重复触发(约每隔50ms一次)

————————————————————————————————————————————————————————————————————————————

以下是W3C官方标准的解释:http://www.w3.org/TR/XMLHttpRequest/#events

The following are the event handlers (and
their corresponding event handler event types)
that must be supported on objects implementing an interface that inherits from
XMLHttpRequestEventTarget
as
attributes:
event handlerevent handler event type
onloadstart
loadstart
onprogress
progress
onabort
abort
onerror
error
onload
load
ontimeout
timeout
onloadend
loadend
The following is the event
handler (and its corresponding event handler event type) that must
be supported as attribute solely by the
XMLHttpRequest
object:
event handlerevent handler event type
onreadystatechange
readystatechange
The following events are dispatched on
XMLHttpRequest
and/or
XMLHttpRequestUpload
objects:
Event nameInterfaceDispatched when…
readystatechange
Event
The
readyState
attribute changes value, except when
it changes to UNSENT.
loadstart
ProgressEvent
The request starts.
progress
ProgressEvent
Transmitting data.
abort
ProgressEvent
The request has been aborted. For instance, by invoking the
abort()
method.
error
ProgressEvent
The request has failed.
load
ProgressEvent
The request has successfully completed.
timeout
ProgressEvent
The author specified timeout has passed before the request completed.
loadend
ProgressEvent
The request has completed (either in success or failure).

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: