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对象。