Javascript Firefox未设置随XHR CORS请求接收的Cookie

Javascript Firefox未设置随XHR CORS请求接收的Cookie,javascript,ajax,firefox,cors,Javascript,Ajax,Firefox,Cors,我正在尝试在域“example.com”上构建一个登录站点,向域“other_domain.com”发送一个Ajax请求,如果凭据正常,该请求将发送回会话cookie。之后,我想重定向到“other_domain.com”网站并登录 我有一个解决方案,可以在IE11、Edge、Chrome上运行,但不能在Firefox上运行,因为当我重定向到“other_domain.com”网站时,Firefox不会设置返回的cookie 这是ajax请求代码: var xhr = new XMLHttpRe

我正在尝试在域“example.com”上构建一个登录站点,向域“other_domain.com”发送一个Ajax请求,如果凭据正常,该请求将发送回会话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));
我可以在每个浏览器上看到选项请求成功,如果凭据正确,还可以在每个浏览器上看到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"
标记为重复后的其他信息:

我可以在开发人员控制台中看到,在选项和来自上面代码的POST请求上,返回了以下标题:

Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: https://example.com
我也可以在Firefox的响应中看到设置Cookie头的正确值,但是在重定向到other_domain.com后,Cookie没有设置。
另外,我的Firefox设置为“接受第三方cookie和站点数据”-“始终”

我也有同样的问题。看看Set_Cookie,它是否具有SameSite=lax属性。如果是,请在服务器上设置cookie时将该属性设置为“无”。 在.NET中,当创建cookie时,您可以选择lax、strict或none


CORS具有访问控制允许凭据:true?并确保您没有使用localhost进行测试。请查看此内容以获得更好的解释,已设置访问控制允许凭据标头,并且源标头也已设置为正确的域。我也不在本地主机上测试。它适用于除Firefox以外的所有浏览器。也许Firefox需要一些额外的CORS设置,但我还没有在我的搜索引擎上找到任何东西。根据更新的问题重新打开。谢谢你的回答。与此同时,我重构了我的解决方案,使其不需要CORS cookies。我的cookie将samesSite设置为lax,因此您的解决方案可能有效-但我无法测试。我不知道我是否应该接受你的回答,因为我现在无法核对。