Set-Cookie头设置Cookie被拦截:Domain属性为何无效?
我的Cookie设置:
Max-Age=86400; Domain=https://domain.me; Path=/; Expires=Tue, 23 Aug 2022 18:18:55 GMT; HttpOnly; Secure; SameSite=Strict
当前域名:
https://domain.me
API域名:
https://api.domain.me
尝试设置Cookie时收到错误:
this attempt to set a cookie via set-cookie header was blocked because its domain attribute was invalid with regards to the current host url.
明明Domain属性和当前URL一致,为什么会报错?
问题出在Domain属性的格式错误。Cookie的Domain字段只需要填纯域名,不能带https://这类协议前缀。你现在写的Domain=https://domain.me不符合规范,浏览器识别不了,所以判定域名无效。
正确的写法应该把协议去掉,改成Domain=domain.me。
另外补充两个实用点:
- 如果想让子域名(比如你的api.domain.me)也能共用这个Cookie,设置
Domain=domain.me就可以,子域名会自动继承; - 如果只需要当前域名(domain.me)使用这个Cookie,甚至可以直接省略Domain字段,浏览器会自动绑定到当前域名,且不会共享给子域名。
修改后的Cookie设置示例:
Max-Age=86400; Domain=domain.me; Path=/; Expires=Tue, 23 Aug 2022 18:18:55 GMT; HttpOnly; Secure; SameSite=Strict
内容的提问来源于stack exchange,提问作者Arjen
相关产品推荐
相关产品推荐

