XMLHttpRequest 对象可以实现以客户端脚本发送 HTTP 请求。
关于 XMLHttpRequest 的更多信息,请参考 XMLHttpRequest 规范。
各浏览器通过 XMLHttpRequest 对象可以实现以客户端脚本发送 HTTP 请求,在 IE6 中这个对象是以 ActiveXObject 创建的(这种方式创建的对象的方法及属性名是大小写不敏感的),在其他浏览器中则可以直接使用 XMLHttpRequest 构造器创建。
若编写 Ajax 应用时没有考虑到在各浏览器中创建 XMLHttpRequest 对象的差异,将造成代码在某些浏览器中不能正常运行。
所有浏览器 |
---|
Ajax 的全称是 Asynchronous JavaScript and XML 的简称,该技术在 1998 年前后得到了应用。允许客户端脚本发送 HTTP 请求(XMLHTTP)的第一个组件由 Outlook Web Access 小组写成。该组件原属于微软 Exchange Server,并且迅速地成为了 Internet Explorer 4.0 的一部分。
Ajax 这个词由《Ajax: A New Approach to Web Applications》一文所创,该文的迅速流传提高了人们使用该项技术的意识。另外,对Mozilla/Gecko的支持使得该技术走向成熟,变得更为易用。
注:本段文字摘录于维基百科-Ajax。
在 IE7 之前,使用 Ajax 所必须的 XMLHttpRequest 对象是通过如 "new ActiveXObject("Microsoft.XMLHTTP")" 等一系列创建 XMLHttp 自动化对象的方式来完成的。该对象中与 window.XMLHttpRequest 对象内的各属性及方法大体一致。
在 IE7 IE8 中,同时支持着两种创建 XMLHttpRequest 对象的方法,一种为 IE 独有的 ActiveXObject 创建的自动化对象,另一种为更加标准及通用的 window.XMLHttpRequest 对象。
而在其他浏览器中,只支持使用标准的 window.XMLHttpRequest 来创建。
判断浏览器版本,使用不同的 XMLHttpRequest 对象创建方式。如:
funciton getXHR(){ var xhrObj; try { xhrObj = new XMLHttpRequest(); } catch (e) { var aTypes = ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP"]; var len = aTypes.length; for (var i = 0; i < len; i++) { try { xhrObj = new ActiveXObject(aTypes[i]); } catch (e) { continue; } break; } } finally { return xhrObj; } }
操作系统版本: | Windows 7 Ultimate build 7600 |
---|---|
浏览器版本: |
IE6
IE7 IE8 Firefox 3.6.3 Chrome 6.0.422.0 dev Safari 4.0.5 Opera 10.53 |
测试页面: | |
本文更新时间: | 2010-08-06 |
Ajax XMLHttpRequest ActiveXObject