XMLHttpRequest用于在后台与服务器交换数据。创建XMLHttpRequest对象的方法如下:
var xhr = new XMLHttpRequest();
【提示】
IE 5.0版本开始以ActiveX组件形式支持XMLHttpRequest,IE 7.0版本开始支持标准化XMLHttpRequest。不过所有浏览器实现的XMLHttpRequest对象都提供相同的接口和用法。
【示例】下面示例使用工厂模式把定义XMLHttpRequest对象进行封装,这样只要调用createXHR()方法就可以返回一个XMLHttpRequest对象。
// 创建XMLHttpRequest对象
// 参数:无;返回值:XMLHttpRequest对象
function createXHR(){
    var XHR = [// 兼容不同浏览器和版本的创建函数数组
        function () {return new  XMLHttpRequest()},
        function () {return new  ActiveXObject("Msxml2.XMLHTTP")},
        function () {return new  ActiveXObject("Msxml3.XMLHTTP")},
        function () {return new  ActiveXObject("Microsoft.XMLHTTP")}
    ];
    var xhr = null;
    //尝试调用函数,如果成功则返回XMLHttpRequest对象,否则继续尝试
    for (var i = 0; i < XHR.length; i ++ ){
        try{
            xhr = XHR[i]();
        }catch (e){
            continue                                     //如果发生异常,则继续下一个函数调用
        }
        break;                                        //如果成功,则中止循环
    }
    return xhr;                                         //返回对象实例
}
在上面代码中,首先定义一个数组,收集各种创建XMLHttpRequest对象的函数。第一个函数是标准用法,其他函数主要针对IE浏览器的不同版本尝试创建ActiveX对象。然后设置变量xhr为null,表示为空对象。接着遍历工厂内所有函数并尝试执行它们,为了避免发生异常,把所有调用函数放在try中执行,如果发生错误,则在catch中捕获异常,并执行continue命令,返回继续执行,避免抛出异常。如果创建成功,则中止循环,返回XMLHttpRequest对象。