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 fromXMLHttpRequestEventTarget
as attributes:
The following is the event handler (and its corresponding event handler event type) that must be supported as attribute solely by the XMLHttpRequest
object:
The following events are dispatched on XMLHttpRequest
and/or XMLHttpRequestUpload
objects: