81530694 2011-09-27
Ajax代码同时支持InternetExplorer和非Microsoft游览器
/* Create a new XMLHttpRequest object to talk to the Web server */
var xmlHttp = false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
@end @*/
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}现在先不管那些注释掉的奇怪符号,如@cc_on,这是特殊的JavaScript编译器命令,将在下一期针对XMLHttpRequest的文章中详细讨论。这段代码的核心分为三步:
1.建立一个变量xmlHttp来引用即将创建的XMLHttpRequest对象。
2.尝试在Microsoft浏览器中创建该对象:
◦尝试使用Msxml2.XMLHTTP对象创建它。
◦如果失败,再尝试Microsoft.XMLHTTP对象。
3.如果仍然没有建立xmlHttp,则以非Microsoft的方式创建该对象。
创建XMLHttpRequest对象实例
var xmlHttp = false;
function createXmlHttpRequest()
{
if(window.ActiveXObject)
{
try
{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(ee)
{
xmlHttp = false;
}
}
}
else if(window.XMLHttpRequest)
{
try
{
xmlHttp = new XMLHttpRequest();
}
catch(e)
{
xmlHttp = false;
}
}
} $http是AngularJS 中的一个核心服务,用于读取远程服务器的数据。"Name" : "Galería del gastrónomo",<li ng-repeat="x in names&qu