You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP设置域名带前置点的Cookie,JS如何获取其值?

问题解答

为啥拿不到Cookie?核心原因在这

你写的PHP代码里,setcookie最后一个参数设成了true——这是Cookie的httponly属性。一旦开了这个属性,浏览器就会直接禁止JavaScript读取这个Cookie(专门用来防范XSS攻击),这就是你试了多个JS脚本都没用的根本原因。

另外你提到控制台显示Cookie域是.mydomain.com,但PHP里写的是mydomain.com,这个是浏览器的正常操作:当你设置域名不带前缀点时,浏览器会自动补充,让子域名也能共享这个Cookie,但这跟JS拿不到Cookie没关系。

怎么解决?

要是你确实需要前端JS读取这个Cookie,把PHP里setcookie的最后一个参数改成false就行:

setcookie('test', $value, time()+(100 * 24 * 60 * 60), '/', 'mydomain.com', true, false);

提醒:关闭httponly会降低Cookie的安全性,如果你的业务不需要前端读取该Cookie,建议保持httponly=true。

你现有的那些JS脚本都是正常可用的,只要关闭httponly属性,任意一个脚本都能正确读出testCookie的值。

内容的提问来源于stack exchange,提问作者Wolden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 18:22:35