XDomainRequest与XMLHTTPRequest

Mow*_*day 13 javascript ajax internet-explorer windows-phone pixi.js

我们正在使用PixiJS创建一个应用程序,其中包含一个动态json加载器.

它使用以下内容加载.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');
}
Run Code Online (Sandbox Code Playgroud)

除了Windows手机和IE之外,这似乎无处不在.但是,如果我将XMLHttpRequest与XDomainRequest交换,它可以正常工作.

最后,有人可以解释XDomainRequest和XMLHTTPRequest之间的区别吗?哪一个优先于另一个?

MrC*_*ode 14

XDomainRequest是在IE8和9 中支持CORS的XHR的唯一方法.在IE8时,微软决定提出自己的CORS XHR,而不是现在在IE10中使用的标准CORS XMLHttpRequest.自IE10起,XDomainRequest已被删除(编辑:见评论).

如果在IE8/9中需要CORS,则应该只使用XDomainRequest.XDomainRequest与XMLHttpRequest不完全可互换,接口不完全相同.一个例子是它不支持该onreadystatechange事件.所以,如果你想在喜欢的问题在它们之间进行切换,你需要确保你使用onloadonreadystatechange检查任何其他功能是可以互换的.

这个答案中有一个示例用法.

  • 据我所知,XDomainRequest在IE10中被删除但仍在那里.它已在IE11中删除. (5认同)