创建XMLHttpRequest对象

获取 XMLHttpRequest对象
使用IE浏览器
IE浏览器使用 MSXML 解析器处理 XML, 根据IE中安装的 JavaScript 技术版本不同,MSXML 实际上有两种不同的版本,因此必须对这两种情况分别编写代码。
在 Microsoft 浏览器上创建 XMLHttpRequest 对象
var xmlHttp = false;
try {
    xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
    try {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e2) {
        xmlHttp = false;
    }
}
牢牢记住其中的两行代码
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");


处理 Mozilla 和非 IE 浏览器
<script language="javascript" type="text/javascript">
    var xmlHttp = new XMLHttpRequest();
</script>

 

var xmlHttp = false;
function createXMLHttp(){
    try{
        xmlHttp = new ActiveXObject("Mircrosoft.XMLHTTP");
    }catch(e){
        try{
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }catch(e){
            xmlHttp = new XMLHttpRequest();
        }
    }
}   
   


XMLHttpRequest对象常用方法和属性
    void open(string method,string url,boolean asynch,string username,string password)
    建立对服务器的调用,前2个参数是必要参数,后几个为可选参数
    method:指定调用的方式(GET/POST)
    url:指定调用资源的URL
    asynch:是否采用异步。默认值为true,true表示采用异步。
    最后2个参数允许指定特定的用户和密码


    void send(content):向服务器发出请求
     如果请求为异步,此方法立即返回,否则直到接到响应为止
     可选参数可以是DOM对象实例或串
    
    void setRequestHeader(string header,string value):设定头信息

          response.setHeader("Cache-control","no-cache");设置页面不缓存
          response.setHeader("pragma","no-cache");设置页面不缓存
          此方法必须在调用Open方法之后调用
     
    string getAllResponseHeaders():获取头信息
    string getResponseHeader(string header):获取头信息

    
    XMLHttpRequest对象属性
    onreadystatechange: 每个状态改变都会触发这个事件处理器,通常是调用javascript回调函数
    readyState :请求状态,0=未初始化 1=正在加载 3=交互中 4=完成
    status :服务器状态码(200 ok,404 not found等)


    statusText :HTTP状态码的相应文本(ok或not found等)。

    responseText :服务器的响应,表示为一个串
    responseXML :服务器的响应,表示为XML


交互示例

    function validateEmali(){
        createHttpRequest();
        var email = document.getElementById("email");
        var url = "validate?email="+escape(email.value);
        xmlHttp.open("GET",url);
        xmlHttp.onreadystatechange = callback;//应在send方法
        xmlHttp.send(null);

   }
   function callback(){
        if(xmlHttp.readyState==4 ){
            if(xmlHttp.status==200 ){
              //do something
            }
         }
   }

使用XMLHttpRequest对象发送请求的基本步骤

      1:创建XMLHttpRequest对象

      2:告诉XMLHttpRequest对象的状态发生改变的时候(onreadystatechange)调用哪个函数

      3:指定请求属性 XMLHttpRequest对象的Open方法

      4:将请求发送个服务器 XMLHttpRequest对象的send方法,send方法可接受1个参数,这个参数

           可以作为URL一部分发送个服务器


XMLHttpRequest对象不能请求脚本所在域之外的资源

 

xmlHttp.open("GET",url);
        xmlHttp.onreadystatechange = callback;//应在send方法
        xmlHttp.send(null);

if(xmlHttp.readyState==4 ){
      if(xmlHttp.status==200 ){
              //do something
       }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值