在IE8中使用XDomainRequest的Vanilla JavaScript CORS请求不起作用

时间:2015-05-15 20:48:51

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

我尝试构建一个简单的包装器函数,用于在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请求正常工作。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

Internet Explorer XDomainRequest永远不会发送CookiesAuthorization标头。这意味着如果请求的目标受到保护,则永远不会对请求进行身份验证。

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