gpt4 book ai didi

javascript - Firefox 不会设置通过 XHR CORS 请求收到的 Cookie

转载 作者:行者123 更新时间:2023-12-03 01:02:43 26 4
gpt4 key购买 nike

我正在尝试在域“example.com”上构建一个登录站点,该站点将 Ajax 请求发送到域“other_domain.com”,如果凭据正常,则此请求会发回 session cookie。之后我想重定向到“other_domain.com”网站并希望登录。

我有一个适用于 IE11、Edge、Chrome,但不适用于 Firefox 的解决方案,因为当我重定向到“other_domain.com”网站时,Firefox 不会设置返回的 cookie。

这是ajax请求代码:

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.open('POST', 'https://other_domain.com/login', true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onreadystatechange = function () {
if (this.status == 200 && this.readyState == 4) {

window.location.replace("https://other_domain.com/app");

}
};
xhr.send(JSON.stringify(payload));

如果凭据正确,我可以在每个浏览器上看到 OPTIONS 请求成功,并且 AJAX post 返回 200 OK。

返回的cookie具有以下值:

CreationTime: "Fri, 28 Sep 20018 12:48:49 GMT"
Domain: "other_domain.com"
Expires: "Session"
HostOnly: true
HttpOnly: true
LastAccessed: "Fri, 28 Sep 20018 12:48:49 GMT"
Path: "/"
Secure: true
sameSite: "Lax"

标记为重复后的其他信息:

我可以在开发者控制台中看到,在上面代码的 OPTIONS 和 POST 请求中,返回了以下 header :

Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: https://example.com

我也可以在 Firefox 的响应中看到具有正确值的 Set-Cookie header ,但在重定向到 other_domain.com 后未设置 cookie。另外,我的 Firefox 设置为“接受第三方 cookie 和站点数据”-“始终”

最佳答案

我也遇到了同样的问题。查看Set_Cookie,是否有SameSite=lax属性。如果是这样,请在服务器上设置 cookie 时将该属性设置为 None。在 .NET 中,当创建 cookie 时,您可以选择宽松、严格或无。

https://learn.microsoft.com/en-us/dotnet/api/system.web.httpcookie.samesite?view=netframework-4.7.2

关于javascript - Firefox 不会设置通过 XHR CORS 请求收到的 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52556081/

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