我们正在使用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');
}这似乎适用于任何地方,除了windows phone和IE。但是,如果我用XDomainRequest替换XMLHttpRequest,它工作得很好。
最后,有人能解释一下XDomainRequest和XMLHTTPRequest之间的区别吗?哪一个应该优先于另一个?
发布于 2014-08-05 23:50:17
XDomainRequest是在IE8和9中拥有支持CORS的XHR的唯一方式。在IE8的时候,微软决定推出他们自己的CORS XHR,而不是现在在IE10中使用的标准CORS XMLHttpRequest。从IE10开始,XDomainRequest就被移除了(编辑器:参见注释)。
只有在IE8/9中需要CORS时才应该使用XDomainRequest。XDomainRequest不能与XMLHttpRequest完全互换,接口也不完全相同。一个例子是它不支持onreadystatechange事件。因此,如果你想像问题中那样在它们之间切换,你需要确保使用onload而不是onreadystatechange,并检查任何其他功能是可互换的。
在这个answer中有一个用法示例。
https://stackoverflow.com/questions/25141650
复制相似问题