【问题标题】:Vanilla JavaScript CORS request with XDomainRequest in IE8 not workingIE8 中带有 XDomainRequest 的 Vanilla JavaScript CORS 请求不起作用
【发布时间】:2015-05-15 20:48:50
【问题描述】:

我尝试构建一个简单的包装函数,用于在 IE 8 中发出 CORS Ajax 请求:

function getCORS(url, success) {
    var xhr = new XDomainRequest();
    xhr.open('GET', url);
    xhr.onload = success;
    xhr.send();
    return xhr;
}

getCORS('http://foo.com/?q=test', function(request){
    console.log(request.currentTarget.response || request.target.responseText);
});

然而,IE 8 会返回“拒绝访问”,尽管现代浏览器中使用“XMLHttpRequest()”的 CORS 请求可以正常工作。有什么想法吗?

【问题讨论】:

  • 好吧 IE8 支持 XMLHttpRequest 所以它会一直使用它。您的检查失败。
  • 为什么投反对票?没有解释?
  • 当使用 'var xhr = new XDomainRequest();'直接,IE8说“访问被拒绝”。所以,即使有工作检查,IE 8 仍然无法在这里工作......
  • 我已经修改了问题并删除了不正确的检查。

标签: javascript ajax internet-explorer-8 cors xdomainrequest


【解决方案1】:

Internet Explorer 的 XDomainRequest 永远不会发送 CookiesAuthorization 标头。这意味着如果您请求的目标受到保护,则该请求将永远无法通过身份验证。

如果您真的必须这样做(过去我必须为本地 HTTP 流式传输执行此操作),您需要使用不使用 cookie 或 Authorization 的授权方案来保护 XDomainRequest 的目标标头(http 基本身份验证)。例如,您可以先从受保护的地址获取某种令牌,然后将该令牌发送到您的XDomainRequest 目标。

【讨论】:

    猜你喜欢
    • 2012-07-14
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 2017-04-18
    • 2016-01-29
    相关资源
    最近更新 更多