创建AJAX的兼容写法

 js在创建AJAX请求时考虑到浏览器的兼容性一般采用以下格式来进行编写代码。

var xhr=new xhr();

function xhr(){
    
    if(window.XMLHttpRequest){

     return window.XMLHttpRequest()
    }else if(window.ActiveXObject){
        
      try{
        return new ActiveObject("Microsoft.XMLHTTP")

        }catch(e){
           try{
             return new ActiveObject("Msxml2.XMLHTTP")
        }catch(e){

            }
       
        }
}
}

为了用JavaScript向服务器发送一个HTTP请求, 需要一个具备这种功能的类实例. 这样的类首先由Internet Explorer以ActiveX对象引入, 被称为XMLHTTP. 后来Mozilla, Safari 和其他浏览器纷纷仿效, 提供了XMLHttpRequest类,它支持微软的ActiveX对象所提供的方法和属性. 
  因此, 为了创建一个跨浏览器的这样的类实例(对象), 可以应用第05—09行的代码.

其中,
http_request = new XMLHttpRequest();
为 Mozilla, Safari, ...浏览器所设,
而,
   http_request = new ActiveXObject("Microsoft.XMLHTTP");
   为 IE所设
ActiveXObject其实就是以一个字符串为参数的函数。我写了一个对象由于没有加引号调用,结果就是报没有这个对象。搞了好久。现在想想,作为参数就是字符串,数字,内存地址和集合(包括数组,对象等等)几类。作为脚本语言的一个顶层函数可以识别的也就字符串和数字了。对象需要知道是什么对象,它哪里知道。


new ActiveXObject("Microsoft.XMLHTTP");
默认版本的XMLHTTP,XMLHTTP主要用来传输数据。

new ActiveXObject("MSXML2.ServerXMLHTTP");
SERVER XMLHTTP,是从XMLHTTP派生的,详细区别,查找MSXML SDK里ServerXMLHTTP,上面有说明。
 

猜你喜欢

转载自blog.csdn.net/Mahuicool/article/details/84643269
今日推荐