在 Web 开发中,设置 cookie 是一个常见的任务。通常,我们可以使用 document.cookie
属性来设置 cookie。但是,需要在跨域环境中设置 cookie,则使用 document.cookie
是行不通的。
为在跨域环境中设置 cookie,我们可以使用 Set-Cookie
HTTP 响应头部。此方法允许服务器在响应中设置 cookie,即使请求来自不同的域。
以下是一个示例:在 server1.example.com 上,我们可以在响应中设置一个跨域 cookie:
HTTP/1.1 200 OK
Set-Cookie: user_id=123456; Domain=.example.com; Path=/; Expires=Thu, 18 Dec 2023 12:00:00 UTC; SameSite=Lax
这将在 .example.com
域下设置一个名为 user_id
的 cookie,有效期至 2023 年 12 月 18 日。此 cookie 可以被同一顶级域名下的所有子域访问(比如 server2.example.com)。
使用 Set-Cookie
头部设置跨域 cookie 的好处是可以更好地控制 cookie 的作用域和有效期。这在构建单页应用程序(SPA)或需要在不同子域之间共享会话信息的场景中非常有用。