简说——Ajax异步请求

基本思路:
    1、创建核心对象  XmlHttpRequest对象,注意IE和非IE如Firfox,oprea,safari,chrome的兼容问题。
2、绑定回调函数 (onreadystatechange、 readyState==4 、)
3、打开链接 (open)
4、发送数据  (send)
5、处理回调函数 (xmlHttpRequest.responseText;)


核心Ajax对象的几种状态,分别代表什么含义?(面试题)
0 (未初始化)     对象已建立,但是尚未初始化(尚未调用open方法) 
1 (初始化)       对象已建立,尚未调用send方法 
2 (发送数据)     send方法已调用,但是当前的状态及http头未知 
3 (数据传送中)   已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误, 
4 (完成)         数据接收完毕,此时可以通过通过responseBody和responseText获取完整的回应数据 

<script type="text/javascript">
/*
 * 4致的流程以及核心对象的5种状态分别代表的含义
 */
 //ajax异步请求的步骤
 //处理IE和火狐等浏览器不兼容的问题
 //获得xmlHTTPRequest对象
function GetXmlHttpObject()
{
  var xmlHttp=null;
  try
    {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    }
  catch (e)
    {
    // Internet Explorer
    try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
    catch (e)
      {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    }
  return xmlHttp;
}
    //1、创建核心对象 2、绑定回调函数 3、打开链接 4、发送数据 5、处理回调函数
    function fn(){    
         //得到核心请求对象
         var xmlRequest = GetXmlHttpObject();
         //绑定回调函数
         xmlRequest.onreadystatechange=function(){
             //这里书写当请求提交后需要处理的业务逻辑
             //当请求状态为发送完成
             if(xmlRequest.readyState == 4){
                 //当发送的状态为成功
                  if(xmlRequest.status==200){
                    //使用request对象的responseText方法得到服务器端打印的字符
                    document.getElementById("T1").innerHTML=xmlRequest.responseText;
                  }else{
                      alert("error"+xmlRequest.statusText);
                  }
             }
   }
      //打开发送链接
      xmlRequest.open("GET","test.jsp",true);
      //发送请求
      xmlRequest.send();
         
    }
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值