これに node.js を使用する際の主な問題は、XMLHttpRequest を含め、ブラウザーが提供するすべてのものを提供しないことです。
node.js でテストしようとしているライブラリ (専有、内部使用のみ) を開発中です。
XHR サポートの欠如に対する私の回避策は、XHR のこの実装をMicrosoft 提供のコードと組み合わせて使用し、標準 XHR の下位互換性を古い IE に追加することです。
jQuery を使用している場合は、jQuery が後で古い IE に独自の互換性を追加するため、おそらくそれを変更する必要があります。
結果は次のようになります。
var XMLHttpRequest;
if (typeof window !== 'undefined') {
XMLHttpRequest = window.XMLHttpRequest;
}
if (typeof XMLHttpRequest === "undefined") {
console.log("Undefined"); (function() {
try {
XMLHttpRequest = new ActiveXObject("Msxml2.XMLHTTP.6.0");
} catch(e) {}
try {
XMLHttpRequest = new ActiveXObject("Msxml2.XMLHTTP.3.0");
} catch(e) {}
try {
XMLHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {}
try {
XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
} catch(e) {}
//Microsoft.XMLHTTP points to Msxml2.XMLHTTP and is redundant
if (typeof XMLHttpRequest === "undefined") {
throw new Error("This browser does not support XMLHttpRequest.");
}
})();
};
さらに、テスト スイートで単純な HTTP サーバーを実行することは、この種の問題に対する通常のアプローチです。私はまだそれを実装しておらず、テストサーバーで実行されている httpd で作業しています。