Dojo源码 - 取得 XMLHttpRequest 对象

XMLHttpRequest 对象是名为 AJAX 的 Web 应用程序架构的一项关键功能.

所有现代浏览器 (IE7+、Firefox、Chrome、Safari 以及 Opera) 都内建了 XMLHttpRequest 对象.

但是, 老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象.

function() {
	var http, last_e;
	if(!dojo.isIE || !dojo.config.ieForceActiveXXhr) {
		// 如果 不是IE, 或者是 在IE下但是没有指定要用 ActiveXObject 
		// 去创建 XHR的情况下, 先尝试用 XMLHttpRequest() 去创建
		try {
			http = new XMLHttpRequest();
		} catch(e) {
		}
	}
	if(!http) {
		// 如果用 new XMLHttpRequest() 创建不成功, 接着
		// 用 new ActiveXObject() 去尝试
		for(var i = 0; i < 3; ++i) {
			// d._XMLHTTP_PROGIDS = 
			//		["Msxml2.XMLHTTP", "Microsoft.XMLHTTP", "Msxml2.XMLHTTP.4.0"]
			var progid = d._XMLHTTP_PROGIDS[i];
			try {
				http = new ActiveXObject(progid);
			} catch(e) {
				last_e = e;
			}

			if(http) {
				// Catch 正确的 PROGID, 下次创建XHR时, 不用再尝试
				// 加快了速度
				d._XMLHTTP_PROGIDS = [progid];
				break;
			}
		}
	}

	if(!http) {
		throw new Error("XMLHTTP not available: " + last_e);
	}

	return http;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值