IE突然开始使用XDomainRequest引发此“访问被拒绝”错误,我无法弄清楚到底是怎么回事。这是我所拥有的:
if ($.browser.msie && window.XDomainRequest) {
// Use Microsoft XDR
var xdr = new XDomainRequest(),
url = 'http://someurl.com/x=1&y=2';
xdr.open("get", url);
xdr.onload = function () {
doTheThing();
};
xdr.onprogress = function(){ };
xdr.ontimeout = function(){ };
xdr.onerror = function () { };
setTimeout(function(){
xdr.send();
}, 0);
}
错误与xdr.open(“ get”,url)一起出现,很奇怪的是,此代码运行良好,并且在我搜索的所有地方都使用了此解决方案。
最佳答案
使用XDomainRequest有一些限制。如果您的页面恰好位于https中,并且目标是http,则将出现此错误。
请注意,请求必须针对与托管页面相同的方案。此限制有意阻止HTTPS页面对基于HTTP的资源进行XDomainRequests
更多详情可在这找到:
http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx