| 特性 | MSXML2.XMLHTTP.6.0 / 3.0 | Microsoft.XMLHTTP |
|---|---|---|
| 所屬 DLL | msxml3.dll / msxml6.dll | msxml2.dll (舊版) |
| 發布時間 | 2004 年 / 2006 年 | 1999 年左右 |
| 標準支持 | 完整支持 XMLHttpRequest Level 1/2 | 僅支持早期私有屬性/方法 |
| 安全性 | 持續接收安全更新 | 早已停止維護,存在已知漏洞 |
| 推薦程度 | 首選 | 僅兼容極舊系統(IE5/IE6)時備用 |
function createXHR() {
if (window.XMLHttpRequest) { // 現代瀏覽器
return new XMLHttpRequest();
}
// IE 降級嘗試順序:新版優先
var versions = [
'MSXML2.XMLHTTP.6.0',
'MSXML2.XMLHTTP.3.0',
'MSXML2.XMLHTTP' // 回退到系統默認版本
];
for (var i = 0; i < versions.length; i++) {
try {
return new ActiveXObject(versions[i]);
} catch (e) { /* 忽略,嘗試下一個 */ }
}
throw new Error('當前環境不支持 AJAX');
}
現代 Web 開發直接使用 `window.XMLHttpRequest`,僅在維護 IE6/7 兼容項目時啟用 ActiveX 降級邏輯,並優先嘗試 `MSXML2.XMLHTTP.6.0`。`Microsoft.XMLHTTP` 僅作歷史參考,新代碼禁止使用。