在生成跨浏览器XHR对象时,我注意到TJ Holowaychuk的superagent库(“Ajax with less suck”)try
用于IE的几种ActiveXObject方法:
// ...if normal browser:
return new XMLHttpRequest;
} else {
try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch(e) {}
try { return new ActiveXObject('Msxml2.XMLHTTP.6.0'); } catch(e) {}
try { return new ActiveXObject('Msxml2.XMLHTTP.3.0'); } catch(e) {}
try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch(e) {}
}
完整代码:https://github.com/visionmedia/superagent/blob/master/build/build.js#L359-376
在jQuery中,这不是尝试,我很好奇这里发生了什么。
您可以在jQuery源代码中搜索“ActiveXObject”并自行查看:http://code.jquery.com/jquery-1.8.2.js
new ActiveXObject('Microsoft.XMLHTTP');
何时抛出并向其他选项投降?