Ajax学习二 Ajax引擎对象中的方法和属性

Ajax引擎对象中的方法

abort()                    停止当前请求
getAllResponseHeaders()            作为字符串返回完整的headers
getResponseHeader("headerLabel")    作为字符串返回单个的header标签
open("method","URL"[,asyncFlag[,"userName"[, "password"]]])    设置未决的请求的目标 URL,方法,和其他参数
send(content)                发送请求
setRequestHeader("label", "value")    设置header(头信息)并和请求一起发送


Ajax引擎对象中的属性
onreadystatechange    状态改变的事件触发器
readyState        对象状态(integer):
                  0 = 未初始化 1 = 读取中 2 = 已读取 3 = 交互中 4 = 完成
responseText        服务器进程返回数据的文本版本
responseXML        服务器进程返回数据的兼容DOM的XML文档对象
status            服务器返回的状态码, 如:404 = "文件未找到" 、200 ="成功"

 
1、使用Ajax请求服务器:

      是用Ajax中的方法实现

2、通过Ajax获取服务器发送的数据:
    
       是用Ajax的属性实现

 

setRequestHeader:

通常在HTTP协议里,客户端像服务器取得某个网页的时候,必须发送一个HTTP协议的头文件,告诉服务器客户端要下载什么信息以及相关的参数。而 XMLHTTP 就是通过HTTP协议取得网站上的文件数据的,所以也要发送HTTP头给服务器。 但是 XMLHTTP 默认的情况下有些参数可能没有说明在HTTP头里,这是当我们需要修改或添加这些参数时就用到了

CONTENT-TYPE:application/x-www-form-urlencoded含义是表示客户端提交给服务器文本内容的编码方式 是URL编码,即除了标准字符外,每字节以双字节16进制前加个“%”表示,
当然还有其他编码方式,如:CONTENT-TYPE:multipart/form-data .

setRequestHeader方法只是为XMLHTTP添加或修改HTTP头提供的一个接口方法而已

<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script>
    function createAjax(){//创建对象
        //window对象中有XMLHttpRequest存在就不是IE的老版本
      if (window.XMLHttpRequest) {
        request=new XMLHttpRequest();
        if (request.overrideMimeType) {
            request.overrideMimeType("text/xml");
        };
      }else if(window.ActiveXObject){   //window对象中有ActiveXObject属性存在就是低版本的IE
          var versons=['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Msxml2.XMLHTTP.7.0', 'Msxml2.XMLHTTP.6.0','Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];

            for (var i = 0; i < versons.length; i++) {
                 try{
                     request=new ActiveXObject(versons[i]);
                     if (request) {
                         return request;
                     };
                 }catch(e){
                     request=false;
                 }
            }
      }         
 
     return request;
    }
 
    var ajax=null;//每次创建之前先初始化对象(保证每次创建的对象都是一个新的)

    function show(){//获取服务器发送的数据(响应)用ajax属性实现
      var conid=document.getElementById('con');
      ajax=createAjax();//创建对象
      ajax.onreadystatechange=function(){//状态改变的事件触发器
          if(ajax.readyState==4){//对象状态
              if(ajax.status==200){//服务器返回的状态码
                  var data=ajax.responseText;
                  alert(data);
                  conid.innerHTML=data;
              }else{
                  alert('请求失败');
              }
          }
      }
     //请求数据:用ajax方法实现
     ajax.open("post","server.php",true);
     // ajax.open("post","server.php?username=lisi&email=11111"+Math.random(),true);
     //上面的方式用post就必须加上下面这句,用get的话不用加。
     ajax.setRequestHeader("content-type","application/x-www-form-urlencoded");
     ajax.send("username=lisi&email=11111");//因为上面是post所以在这里传值
    }
    

</script>

<input type="button" value="request" onclick="show()">
<div style="height:300px;width:300px;background:yellow" id="con">
</div>

 


   

posted @ 2014-04-26 06:10  选择了就坚持  阅读(313)  评论(0编辑  收藏  举报