我如何将Cookie发送到子域

时间:2019-11-14 08:20:58

标签: javascript html cookies subdomain

我将cookie设置为域foo。我正在尝试将它们发送到例如api.foo的子域,但这样做没有成功。 根据mdn(https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies)上cookie的规格,如果设置了域,则cookie会自动发送到子域。

我尝试过的事情:

let http = require('http')
http.createserver((req, res) => {
    res.writeHead(200, {'Set-cookie': `hello=${10*Math.random()}; Domain=foo; Path=/`, 'Access-Control-Allow-Origin': '*'})
    res.write(`
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv='X-UA-Compatible" content="ie=edge">
  <title>Document</Title>
  <script defer>
    fetch('http://api.foo:8080/')
  </script>
</head>
<body>
  fooooo
</body>
</html>
    `);
    res.end()
}).listen(8080)

我也在主机文件中添加了它: 127.0.0.1 foo 127.0.0.1 api.foo

这样,它们都将指向相同的位置,这样我就可以看到Cookie发生变化,而chrome不会阻止cookie的发送(如果是从文件中读取,则不会这样做)

在chrome浏览器中调试之后,我看到网络请求如下:

发送给foo的请求将发送cookie hello = 8.21,而没有域或路径,并且响应包含一个响应,其中包含cookie cookie hello = 2.33; Domain = .foo;路径= /;

发送的请求api.foo不包含任何cookie,但确实可以接收它们。

感谢您的帮助。

0 个答案:

没有答案