CORS,withCredentials 和第三方 cookie

Cha*_*Tan 6 cookies cross-domain same-origin-policy cors

我正在尝试做一个 CORS GET 来发送 cookie。我已经在服务器中设置了所有标头 ( access-control-allow-origin, access-control-allow-credentials, access-control-allow-headers)withCredentials: truecrossDomain: true在 jquery ajax 请求中使用和。当我告诉浏览器允许第三方 cookie 时,一切正常。有没有办法在不强制访问者允许第三方 cookie 的情况下做到这一点?我什至尝试重定向用户并重定向回来,但 CORS 将拒绝发送 cookie。:/

我尝试通过 ajax 以及 iframe 执行 CORS 请求。

小智 5

我不认为这是可能的。请参阅我的(旧但相关的)博客文章。唯一的防弹方法是使用第一方 cookie(即在顶级窗口中打开窗口,如单独的选项卡,或重定向当前窗口)。

但在某些情况下,这不是必需的。浏览器对第三方 cookie 的概念略有不同,默认行为也不同。这篇文章很好地概述了这些细节。因此,在某些情况下,您可以使用技巧来启用(或至少检测)页面上 cookie 的使用。

其他解决方法包括将一台服务器置于另一台服务器的子域下(子域通常不被视为第 3 方),或更改流程以便通过 cookie 以外的其他方式对用户进行身份验证。