Ajax及HTTP状态值

来源:互联网 发布:js中内置对象有哪些 编辑:程序博客网 时间:2024/05/04 04:13

Ajax(Asynchronous JavaScript And XML)

一、XMLHttpRequest对象

Ajax的核心是XMLHttpRequest对象(简称XHR)

function createXMLHttpRequest(){
//创建异步对象
try {
return new XMLHttpRequest();   //大多数浏览器
} catch (e) {
try {
return ActiveXobject("Msxm12.XMLHTTP");//IE6.0
} catch (e) {
try {
return ActiveXobject("Microsoft.XMLHTTP");//IE5.5以及更早的版本
} catch (e) {
alert("你用的什么浏览器~~~~");
throw e;
}
}
}
}


var xmlHttp = createXMLHttpRequest();  //创建异步对象

二、XHR的用法

a、在使用XHR对象时,要调用的第一个方法是open(method,url,async);

method : 要发送的请求的类型(get/post一般是大写)

url: 请求的地址(相对路径或绝对路径)

async: 表示是否异步发送请求的布尔值  true(异步)或 false(同步) 

注意:1、URL:相对于执行代码的当前页

    2、调用open()方法并不会真正发送请求,而只是启动一个请求以备发送

b、要发送特定的请求,还需要send()方法

send()方法接收一个参数,即要求作为请求体发送的数据

(get方法调用send时传入null)

(GET)

(POST)


c、XMLHttpRequest取得响应

*reponseText: 获得字符串形式的响应数据

*reponseXML:获得XML形式的响应数据

*status和statusText: 以数字和文本形式返回HTTP状态码(status:响应的HTTP状态:200、404、500、302********statusText:“OK”)

*getAllResponseHeader: 获取所有的响应报头

*getResponseHeader(): 查询响应中的某个字段的值

d、接收到响应后,第一步检查status属性,以确定响应已经成功返回

e、要发送异步请求时,可以检测XHR对象的readyState属性,该属性表示请求/响应过程的当前活动阶段

这个属性的可取值:

0:未初始化,尚未调用open方法

1:启动,服务器连接已建立,open方法已经调用,但尚未调用send方法

2:发送,已经调用send方法,(请求已接收)但尚未接收到响应

3:接收,请求处理中(交互,正在解析响应内容,即服务器开始响应了,但不表示响应结束了)

4:完成,已经接收到全部相应数据,而且已经可以在客户端使用了(请求已完成,且响应已就绪)

注意:只要readyState属性的值由一个值变成了另一个值,都会触发一次readystatechange事件(可以利用这个事件来检测每次状态变化后的readyState值)


如上图所示:当readyState等于4且HTTP状态码为200作为成功标志,去做你想做的事情















0 0