Domain + Path 必须配合使用才有效

rl5954 互联网 153

单独设对 domain 却漏掉 path,或者 path 设得太窄,都会导致预期外的不可见:

  • 如果想让 .example.com 下所有子域、所有路径都能用这个 Cookie,必须同时写 domain=.example.com 和 path=/

  • 如果只写 domain=.example.com 但没写 path,浏览器会默认使用当前页面路径(比如 /user/profile),那么 /api/ 请求就不会带上它

  • 反过来,只设 path=/ 不设 domain,Cookie 就只能在当前子域内生效,无法跨到 api.example.com 等其他子域

常见错误与规避方式

这些写法看似合理,实际无效或危险:

  • domain=example.com(缺前导点)→ 浏览器静默忽略

  • domain=.localhost → 本地开发时无效,现代浏览器不支持点号开头的 localhost

  • path=admin(缺斜杠)→ 可能意外匹配 /administrate 等无关路径

  • 在 HTTP 页面设 Secure 属性 → Cookie 直接不存,且无报错提示

调试建议:用浏览器开发者工具的 Application → Cookies 面板实时查看 domain/path 是否按预期写入,注意观察“Domain”列显示的值是否带点、是否小写、是否与当前页匹配。


标签: JavaScript 常见错误与规避方式 Domain + Path