ajax异步响应

利用ajax实现异步交互无非4步:

1.创建ajax核心对象

2.与服务器建立连接

3.向服务器发送请求

4.接收服务器响应的数据

看似神秘的异步交互当明确这4步后,也许在大家脑海里已经有了初步的思路了

首先我们创建ajax的核心对象,由于浏览器的兼容问题我们在创建ajax核心对象的时候不得考虑其兼容问题,因为要想实现异步交互的后面步骤都基于第一步是否成功的创建了ajax核心对象.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function getXhr(){
// 声明XMLHttpRequest对象
var xhr = null ;
// 根据浏览器的不同情况进行创建
if (window.XMLHttpRequest){
// 表示除IE外的其他浏览器
xhr = new XMLHttpRequest();
} else {
// 表示IE浏览器
xhr = new ActiveXObject( 'Microsoft.XMLHttp' );
}
return xhr;
}
// 创建核心对象
var xhr = getXhr();

通过上述代码我们已经成功的创建了ajax核心对象,我们保存在变量xhr中,接下来提到的ajax核心对象都将以xhr代替.

第二步就是与服务器建立连接,通过ajax核心对象调用open(method,url,async)方法.

open方法的形参解释:

method表示请求方式(get或post)

url表示请求的php的地址(注意当请求类型为get的时候,请求的数据将以问号跟随url地址后面,下面的send方法中将传入null值)

async是个布尔值,表示是否异步,默认为true.在最新规范中这一项已经不在需要填写,因为官方认为使用ajax就是为了实现异步.

?
1
2
xhr.open( "get" , "01.php?user=xianfeng" ); //这是get方式请求数据
xhr.open( "post" , "01.php" ); //这是以post方式请求数据

第三步我们将向服务器发送请求,利用ajax核心对象调用send方法

如果是post方式,请求的数据将以name=value形式放在send方法里发送给服务器,get方式直接传入null值

?
1
2
xhr.send( "user=xianfeng" ); //这是以post方式发送请求数据
xhr.send( null ); //这是以get方式

第四步接收服务器响应回来的数据,使用onreadystatechange事件监听服务器的通信状态.通过readyState属性获取服务器端当前通信状态.status获得状态码,利用responseText属性接收服务器响应回来的数据(这里指text类型的字符串格式数据).后面再写XML格式的数据和大名鼎鼎的json格式数据.

?
1
2
3
4
5
6
7
8
9
xhr.onreadystatechange = function (){
                // 保证服务器端响应的数据发送完毕,保证这次请求必须是成功的
    if (xhr.readyState == 4&&xhr.status == 200){
       // 接收服务器端的数据
       var data = xhr.responseText;
       // 测试
       console.log(data);
   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值