ajax代码及简单封装

var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); //创建XMLHTTP对象,考虑兼容性
                  xmlhttp.open("POST", "AJAXTest.ashx?" + "i=5&j=10", true); //“准备”向服务器的GetDate1.ashx发出Post请求(GET可能会有缓存问题)。这里还没有发出请求
                  xmlhttp.onreadystatechange = function ()
                  {
                        if (xmlhttp.readyState == 4) //readyState == 4 表示服务器返回完成数据了。之前可能会经历2(请求已发送,正在处理中)、3(响应中已有部分数据可用了,但是服务器还没有完成响应的生成)
                        {
                              if (xmlhttp.status == 200) //如果状态码为200则是成功
                              {
                                    alert(xmlhttp.responseText);
                              }
                              else
                              {
                                    alert("AJAX服务器返回错误!");
                              }
                        }
                  }
//不要以为if (xmlhttp.readyState == 4) {在send之前执行!!!!
                  xmlhttp.send(); //这时才开始发送请求
//发出请求后不等服务器返回数据,就继续向下执行,所以不会阻塞,界面就不卡了,这就是AJAX中“A”的含义“异步”。试着在ashx加一句Thread.Sleep(3000);
简单的ajax封装:
  function ajax(url,onsuccess,onfail)
            {
                  var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
                  xmlhttp.open("POST", url, true);
                  xmlhttp.onreadystatechange = function ()
                  {
                        if (xmlhttp.readyState == 4)
                        {
                              if (xmlhttp.status == 200)
                              {
                                    onsuccess(xmlhttp.responseText);
                              }
                              else
                              {
                                    onfail(xmlhttp.status);
                              }
                        }
                  }
                  xmlhttp.send(); //这时才开始发送请求
            }
//创建一个XMLHttpRequest对象 ,利用此对象与服务器进行通信 是AJAX技术的核心
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
function ajaxFunction(){
     var xmlHttp;
     try{ // Firefox, Opera 8.0+, Safari
            xmlHttp=new XMLHttpRequest();
      }
      catch (e){
   try{// Internet Explorer
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
     catch (e){
        try{
            xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e){}
        }
      }
return xmlHttp;
  }
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
function getXMLHttpRequest(){
var xmlHttpReq=null; 
if (window.ActiveXObject) {//IE浏览器创建XMLHttpRequest对象
xmlHttpReq = new ActiveXObject("MSXML2.XMLHTTP.3.0");
}else if(window.XMLHttpRequest){
xmlHttpReq = new XMLHttpRequest();
}
        return xmlHttpReq;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
function getXMLHttpRequest() {
var xmlHttpReq=null;
if (window.XMLHttpRequest) {//Mozilla 浏览器
xmlHttpReq = new XMLHttpRequest();
}else {
if (window.ActiveXObject) {//IE 浏览器
try {
xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
try {//IE 浏览器
xmlHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
}
}
}
}
return xmlHttpReq;
}

你可能感兴趣的:(Ajax)