我目前在使用IE10进行跨域ajax调用时遇到问题(在IE10模式下,不兼容).
情况:我有两个域名,http://a和http://b.我有一个cookie设置http://b.我目前在页面上http://a.
我想做一个http://b使用XMLHttpRequest 的CORS请求(根据http://blogs.msdn.com/b/ie/archive/2012/02/09/cors-for-xhr-in-ie10.aspx,这应该可行.),并在请求中包含cookie.JS如下:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://b', true);
xhr.withCredentials = true;
xhr.send();
Run Code Online (Sandbox Code Playgroud)
这应该确保cookie附加到请求; 然而,Fiddler跟踪显示没有附加cookie,我得到了401: Access Denied.
服务器配置为使用CORS,它包括Access-Control标头:
Access-Control-Allow-Origin: http://a
Access-Control-Allow-Credentials: true
Run Code Online (Sandbox Code Playgroud)
(这不应该有任何区别,因为没有OPTIONS预检请求,并且IE发送的第一个请求是GET,并且cookie不存在,从而导致401).
此外,JS代码段在Firefox和Opera中均可正常运行.