文章目录

Ajax技术说的是把Javascript、Css、Dom和(X)HTML结合起来的一种新用法。这种结合并不是新概念——事实上,DHTML技术早就把这几样技术结合在一起了。Ajax的独到之处在于它在服务器端使用了异步(Asynchronous)处理技术。
1.首先需要创建XMLHttpRequest对象

var request = new XMLHttpRequest();//IE5/6不支持,如何兼容呢?很简单,如下:

var request;
if(window.XMLHttpRequest){
    request = new XMLHttpRequest();//支持IE7+,标准浏览器
}else{
    request = new ActiveXObject("Microsoft.XMLHTTP");//支持IE5/6
}

2.创建一个http请求

创建XMLHttpRequest对象后,就可以调用open()方法创建一个请求,并准备向服务器发送。

方法说明:

open(method, url, asynchronous, user, password);

参数就明:

Method:指定请求类型,一般为get或者post;

url: 指定请求的地址,可以是绝对地址或者相对地址,可以附带查询字符串;
Asynchronous:(可选)表示请求是同步还是异步,同步请求为false, 异步为true,默认为true;

User:(可选)指定请求的用户名;

Password:(可选) 指定请求密码;

例如:

xmlhttp.open("get","test.php?id=1",true)

3.发送请求

在创建一个请求后,可以使用send()方法向服务器发送这个请求;

方法说明:

send(content);

该方法有一个参数content,它表示要向服务器发送的数据,其格式为查询字符串形式;

如果不发送任何参数可以使用null;

如果open()方法中用post方式提交请求,那么在send之前使用如下语句设置HTTP头:

xmlhttp.setRequestHeader(“Content-Type”, “application/x-www-form-urlencoded”);

4.捕获请求的状态

XMLhttpRequest对象提供了onreadystatechange事件来捕获请求的状态;如下:

ajax.onreadystatechange = function(){
    //事件处理
}

5.判断请求状态

onreadystatechange事件是在readyState属性发生改变时触发的,readyState的值表示当前请求的状态,事件处理程序中可以根据这个值来进行不同的处理。

0:表示对象已经建立,但请求未初始化,尚未调用open方法;

1:表示服务器连接已建立,open方法已经调用

2:表示send方法已调用

3:表示请求已发送,正在接收数据

4:表示数据已接受成功
6.判断请求结果

status存储服务器端返回的http请求响应代码,它请求的处理结果:

200:请求成功

202:请求被接收,但处理未完成

400:错误的请求

404:请求资源未找到

500:内部服务器错误
7.获取返回的结果

(1).使用responseText属性可以获取请求页面的纯文本内容。

(2).还可以使用responseXML属性来获取服务器返回的XML文档对象。

使用responseXML属性,服务器返回的必须是一个XML格式的文档,responseXML直接将服务器返回的XML文档转换为对象,这个对象已经完了对XML的解析,可以使用DOM模型规定的方法来对其进行操作。

文章目录
Fork me on GitHub