为什么浏览器不发送cookie

时间:2021-02-19 08:11:49

标签: javascript cookies

我从 JavaScript 中设置了一个 cookie,如下所示:

document.cookie =
    't=sometokengoeshere; max-age=3600; domain=localhost; samesite=strict';

之后,cookie就真的存在了:

console.log(document.cookie); // outputs correct cookie

如果我的 JavaScript 是从 localhost:3000 提供的,并尝试联系我在 localhost:80 上运行的后端,浏览器会确实发送 cookie 以及后续请求。这很奇怪,因为我认为这应该被视为跨域。

但是,如果我的 JavaScript 和后端都从 localhost:80 提供服务,则浏览器不会将 cookie 与后续请求一起发送。控制台中没有错误消息。

我提到的“后续请求”是在我像这样设置 HTMLAudioElement 的 url 后由浏览器发出的请求:

audio.src = 'http://localhost/audio.php';

当然,我在设置 cookie 之后 执行上述操作。

我可以在 Firefox 和 Chrome 中重现这种奇怪的行为。这里发生了什么?我还尝试从 cookie 中删除 domainsamesite,或者使用 samesite=lax,也不起作用。

0 个答案:

没有答案