web-dev-qa-db-ja.com

XDomainRequestとXMLHTTPRequest

動的なjsonローダーを含むPixiJSを使用してアプリケーションを作成しています。

以下を使用して.jsonファイルをロードします。

if(window.XDomainRequest)
{
    this.ajaxRequest = new window.XDomainRequest();
}
else if (window.XMLHttpRequest)
{
    this.ajaxRequest = new window.XMLHttpRequest();
}
else
{
    this.ajaxRequest = new window.ActiveXObject('Microsoft.XMLHTTP');
}

これは、WindowsPhoneとIEを除いてどこでも機能するようです。ただし、XMLHttpRequestをXDomainRequestと交換すると、正常に機能します。

最後に、誰かがXDomainRequestとXMLHTTPRequestの違いを説明できますか?どちらを優先する必要がありますか?

14
Mowday

XDomainRequestは、IE8および9で [〜#〜] cors [〜#〜] をサポートするXHRを使用する唯一の方法です。IE8の時点で、Microsoftは独自のCORSXHRを考案することを決定しました。 IE10で現在使用されている標準のCORSXMLHttpRequestの代わりに。 IE10以降、XDomainRequestは削除されました(エディター:コメントを参照)。

IE8/9でCORSが必要な場合にのみ、XDomainRequestを使用する必要があります。 XDomainRequestはXMLHttpRequestと完全に互換性があるわけではなく、インターフェースは完全に同じではありません。 1つは、onreadystatechangeイベントをサポートしていないことです。したがって、質問のようにそれらを切り替えたい場合は、onloadではなくonreadystatechangeを使用し、他の機能が互換性があることを確認する必要があります。

これには使用例があります answer

15
MrCode