简介
XMLHttpRequest是一个浏览器接口,这个对象提供了对HTTP协议的完全访问,包括做出POST请求与HEAD请求以及普通GET请求的能力,使得JavaScript可以进行HTTP通信。
新版本的XMLHttpRequest对象:
- 可以设置HTTP请求的响应时间。
- 可以使用FormData对象管理表单数据。
- 可以上传文件。
- 可以跨域请求(不同域名下的数据)。
- 可以获取服务器端的二进制数据。
- 可以获得数据传输的进制信息。
属性
xhr.readyState
表示http的请求状态,当xhr初次创建时属性值是0,直到接收到完整的HTTP响应,值就增加到4
- 0 初始化状态:xhr对象已创建或已被
abort()
方法重置 - 1 open:
open()
方法已调用,但send()
未调用,请求还没发送 - 2 sent :
send()
已调用,HTTP请求发送到服务器,但还没有接收到响应 - 3 receiving:响应头都已经接收到,响应体开始接收但还未完成
- 4 loaded:HTTP响应已经完全接收。
xhr.resposeText
目前位置服务器接收到的响应体,不包括头部,如果还没接收到数据,就是一个空字符串
如果readyState值<3,该属性就是一个空字符串
如果=3,返回已经接收到的响应部分
如果readyState值=4,返回完整的响应体
xhr.responseXML
将请求的响应解析为XML,作为Document对象返回
xhr.status
HTTP状态码
200:成功
404:错误
注意在readyState<3时读取这个属性会有异常。和statusText类似。
方法
onreadystatechange()
每次 readyState 属性改变的时候调用的事件句柄函数。当 readyState 为 3 时,它也可能调用多次。
abort()
取消当前响应。当太久未响应时可以调用这个方法。将readyState置0。
open()
初始化HTTP请求参数,但部发送请求。
send()
发送HTTP请求,使用open()中的参数。
补充
设置HTTP请求时限
xhr.timeout=5000; // 设置超时时间(5秒)