XMLHttpRequest对象详解二
5) 使用readyState属性判断请求状态
onreadystatechange事件是在readyState属性发生改变时触发的。readyState的值表示了当前请求的状态,那么,在事件处理程序中就可以根据这个值的不同来进行不同的处理。
readyState值的含义
0------对象已建立,但 还未初始化,这时尚未调用open方法
1------正在加载,open方法已调用,尚未调用send方法
2------已加载,send方法已调用,其他数据未知
3------请求发送中
4------请求发送完成。
readyState的值仅表 示了请求的状态,并没有表示请求的结果
6) 使用status属性判断请求的结果
status属性储存服务器返 回的http请求响应代码,它表示了请求的结果。
status值的含义:
200------请求成功
400------错误的请求
404------请求资源未 找到
500------内部服务器 错误
在请求完成的情况下,可以使用status判断请求的结果。在Ajax开 发中,最常用的是200这个响应代码。
7) 使用responseText属性获得返回的文本
当服务器成功处理了请求并返回后,可以使用XMLHttpRequest对象的responseText属性来获取返回的文本结果。
例如: readtxt.html,a.txt,b.txt
getXml.html, myXML.xml
8) 使用responseXML属性获取返回的XML文档
使用responseText属性获取返回的纯文本时,服务器无需特殊的操作。而使用responseXML属性时,服务器返回的必须是一个XML格式的文档。这时要求返回的http头 的content-type设置为“text/XML”。若请求的后缀为xml,服务器会自动将返回结果的http头的content-type设置为“text/XML”。
使用responseXML属性获取的结果实际上是dom模型 所规定的一个文档对象。可以对这个文档对象进行操作获取所需要的内容。
值得注意的是,responseXML属性必须在服务器上运行,因为只有通过服务器通过的MIME类 型才能判断返回的内容是否是XML文档
例如:parsexml.html和a.xml
parsexml2.html, myXML.xml
9) 使用abort方法取消一个请求
当使用XMLHttpRequest向服务器提交一个请求后,如果由于某种原因要取 消请求,可以使用abort方法。
11) 发送请求参数
get和post方 法的区别在于,post方法将参数串放在请求体中发送,get方法将参数直接加到url中发送。,post方 法为了确保服务器知道请求体中有请求参数,需要先调用XMLHttpRequest的setRequestHeader方法,将Content-Type值设为application/x-www-form-urlencoded(XMLHttpRequest.setRequestHeader(“Content-Type”,”application/x-www-form-urlencoded”;)。然后使用send方法发送请求。
例如:getAndPostExample.html和GetAndPostExample.java
为什么要把时间戳追加到目标url上?因为在某些情况下,有些浏览器会 把多个XMLHttpRequest请求的结果缓存在一个url。把当前时间戳追加到url的最后,就能确保url的唯一性,从而避免浏览器缓存的结果。
热门日志
分类
- Django(4)
- ssdb(1)
- Mac(7)
- C(1)
- memcache(1)
- Python(32)
- Vim(8)
- sed(2)
- ansible(3)
- awk(4)
- shell(3)
- about(1)
- git(9)
- bat(4)
- svn(0)
- docker(1)
- Tornado(1)
- go(2)
- 架构(18)
- Vue(1)
- game(2)
- Html(6)
- Java(8)
- Mysql(37)
- Ajax(2)
- Jsp(1)
- Struts(8)
- Linux(72)
- JavaScript(39)
- Staruml(0)
- Mouth(1)
- Php(102)
- Windows(8)
- Message(48)
- Lua(10)
- Compute(1)
- Redis(7)
- Nginx(12)
- Jquery(1)
- Apache(1)
- cocos2d-x(8)