访问被拒绝,IE的XDomainRequest打开(“get”,url)

时间:2015-02-11 12:09:48

标签: javascript ajax internet-explorer xdomainrequest

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)有关,奇怪的是这段代码工作正常,这个解决方案在我搜索的每个地方都使用。

1 个答案:

答案 0 :(得分:2)

使用XDomainRequest存在限制。如果您的网页恰好是https而您的目标是http,那么您将收到此错误。

请注意,请求必须定位到与托管页面相同的方案。此限制故意阻止HTTPS页面为基于HTTP的资源创建XDomainRequests

更多细节可以在这里找到:

http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx