gpt4 book ai didi

javascript - Internet Explorer 10 忽略 XMLHttpRequest 'xhr.withCredentials = true'

转载 作者:行者123 更新时间:2023-12-02 20:56:19 25 4
gpt4 key购买 nike

我目前在使用 IE10 进行跨域 ajax 调用时遇到问题(在 IE10 模式下,不兼容)。

情况:我有两个域,http://ahttp://b。我为 http://b 设置了 cookie。我当前位于 http://a 页面。

我想使用 XMLHttpRequest 向 http://b 发出 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();

这应该确保 cookie 附加到请求中;但是,Fiddler 跟踪显示没有附加 cookie,并且我收到 401: Access Denied

服务器配置为使用 CORS,它包含访问控制 header :

Access-Control-Allow-Origin: http://a
Access-Control-Allow-Credentials: true

(这应该没有任何区别,因为没有 OPTIONS 预检请求,并且 IE 发送的第一个请求是 GET,并且 cookie 不存在,因此导致 401)。

此外,JS 代码片段在 Firefox 和 Opera 中都可以正常工作。

最佳答案

这可能是同样的旧 IE P3P 问题。使用 IE 的默认设置,如果设置的 cookie 响应中没有包含 P3P header ,则该 cookie 会被标记为“仅限第一方”。这意味着在第三方上下文中,例如 iframe 或 CORS 请求,IE 将拒绝发送 cookie。

要修复此问题,您需要在设置 cookie 时提供 P3P header 。请参阅http://msdn.microsoft.com/en-us/library/ms537343%28v=vs.85%29.aspx了解详情。

更新:链接现已失效,但您可以在 the Internet Archive 处看到它

关于javascript - Internet Explorer 10 忽略 XMLHttpRequest 'xhr.withCredentials = true',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12643960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com