Cookies Cookie未存储在浏览器中,跨域获取请求

Cookies Cookie未存储在浏览器中,跨域获取请求,cookies,httpcookie,Cookies,Httpcookie,我有一个域(比如cookiebaker.com),它使用GET请求提供文件。每当发出请求时,cookiebaker服务器都会向文件响应中添加一个set cookie头 下面是一个示例标题(最大年龄设置为未来1个月): 现在,当我从另一个域(比如munchies.com)调用cookiebaker.com时,我可以在GET响应中看到set cookie头,但是munchies.com不存储cookie。我在开发工具中没有看到cookie,并且它不会在后续请求中上载 我知道在执行GET请求时必须将“

我有一个域(比如cookiebaker.com),它使用GET请求提供文件。每当发出请求时,cookiebaker服务器都会向文件响应中添加一个set cookie头

下面是一个示例标题(最大年龄设置为未来1个月):

现在,当我从另一个域(比如munchies.com)调用cookiebaker.com时,我可以在GET响应中看到set cookie头,但是munchies.com不存储cookie。我在开发工具中没有看到cookie,并且它不会在后续请求中上载

我知道在执行GET请求时必须将“withCredentials”标志设置为true,但这对我的情况没有帮助

这是我精简的麦奇网站代码:

let request = new XMLHttpRequest();
request.open('GET', "https://cookieBaker.com?param=value");
request.withCredentials = true; // Tell the browser to receive cookies
request.send();
是否还有其他任何东西会阻止cookie存储在浏览器中?这些是GET响应中包含的所有访问控制标题(localhost是我测试中munchies.com的“真实”名称):


您已经在
cookiebaker.com
cookie上显式设置了
SameSite=Lax
,这将限制它在跨站点上下文中发送,例如
fetch()
源于
munchies.com


对于显式跨站点cookie,应该使用
SameSite=None;安全
。有关更深入的实现细节,请参见

Woah,我还以为是另一种方式呢!我在某个地方读到,lax让我们通过GET请求发送cookies,但可能我读错了。谢谢你的帮助
GET
请求将包括
SameSite=Lax
上的cookie,如果它们是指向同一站点的顶级导航。
let request = new XMLHttpRequest();
request.open('GET', "https://cookieBaker.com?param=value");
request.withCredentials = true; // Tell the browser to receive cookies
request.send();
access-control-allow-credentials: true
access-control-allow-headers: Authorization, Content-Type
access-control-allow-methods: OPTIONS, GET, POST, PUT, PATCH, DELETE
access-control-allow-origin: http://localhost
access-control-expose-headers: X-WP-Total, X-WP-TotalPages