動的な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の違いを説明できますか?どちらを優先する必要がありますか?
XDomainRequestは、IE8および9で [〜#〜] cors [〜#〜] をサポートするXHRを使用する唯一の方法です。IE8の時点で、Microsoftは独自のCORSXHRを考案することを決定しました。 IE10で現在使用されている標準のCORSXMLHttpRequestの代わりに。 IE10以降、XDomainRequestは削除されました(エディター:コメントを参照)。
IE8/9でCORSが必要な場合にのみ、XDomainRequestを使用する必要があります。 XDomainRequestはXMLHttpRequestと完全に互換性があるわけではなく、インターフェースは完全に同じではありません。 1つは、onreadystatechange
イベントをサポートしていないことです。したがって、質問のようにそれらを切り替えたい場合は、onload
ではなくonreadystatechange
を使用し、他の機能が互換性があることを確認する必要があります。
これには使用例があります answer 。