【问题标题】:Access denied with IE's XDomainRequest open("get",url)使用 IE 的 XDomainRequest open("get",url) 拒绝访问
【发布时间】:2015-02-11 12:09:48
【问题描述】:

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) 出现错误,奇怪的是这段代码运行良好,而且在我搜索的任何地方都使用了这个解决方案。

【问题讨论】:

  • 有点无关:在最新版本的jQuery中删除了$.browser
  • 你确认远程服务器还在设置Access-Control-Allow-Origin吗?在 IE 控制台中查看错误详情?
  • @JanSommer 我知道,但这是前段时间设定的项目,这就是为什么我很惊讶看到这个错误发生。
  • @AlexK。除了“拒绝访问”之外没有任何细节:(服务器没问题,永远没有变化......

标签: javascript ajax internet-explorer xdomainrequest


【解决方案1】:

使用 XDomainRequest 有一些限制。如果您的页面恰好在 https 中并且您的目标是 http,那么您将收到此错误。

请注意,请求必须针对与托管页面相同的方案。此限制故意阻止 HTTPS 页面为基于 HTTP 的资源发出 XDomainRequests

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

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

【讨论】:

    猜你喜欢
    • 2013-06-09
    • 1970-01-01
    • 2016-08-13
    • 2012-01-17
    • 2020-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多