Ajax-API

Ajax----API

var xmlhttp = false;
function CreateXMLHttp(){
        try{
            xmlhttp = new XMLHttpRequest();  //创建 XMLHttpRequest 对象,除 IE 外的浏览器都支持此方法。
        }
        catch (e){
            try{
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");//新版本IE 创建 IE 兼容对象(Msxml2.XMLHTTP)
            }
            catch (e){
                try{
          xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); //老版本IE创建IE兼容对象(Microsoft.XMLHTTP)
                }
                catch (failed){
                      xmlhttp = false;  //如果失败则保证 request 的值仍然为 false。
                }
            }
        }
        return xmlhttp;
}

 

Ajax请求函数:

function sendRequest(){
  var url = "http://127.0.0.1:8080/ch19_1/ajaxServlet?action=send";
  CreateXMLHttp();                                                    //创建Ajax对象函数的调用
  if(xmlhttp){
     xmlhttp.open("GET",url, true);
     xmlhttp.onreadystatechange = getResult;            //返回结果处理函数的调用
     xmlhttp.send(null);
  }
}

 

 

function getResult(){
  if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
       var type = xmlhttp.responseXML.getElementsByTagName("type_name");
       var str=new Array();
       for(var i=0;i< type.length;i++){
         str[i]=type[i].firstChild.data;
         document.all['td'].innerHTML+=str[i]+"";
       }
  }
}

 

 

 

这里要注意xmlhttp.readyState 的状态值,不同的值代表不同的状态:

 

 

 

0      Uninitialized   初始化状态。XMLHttpRequest 对象已创建(未调用open()之前)或已被 abort() 方法重置
1      Open           open() 方法已调用,但是 send() 方法未调用。请求还没有被发送。
2      Sent            Send() 方法已调用,HTTP 请求已发送到 Web 服务器。未接收到响应。
3      Receiving      所有响应头部都已经接收到。响应体开始接收但未完成。
4      Loaded         HTTP 响应已经完全接收。