我使用以下命令在 PHP 中设置了 cookie:
setcookie("id", 100, time()+100000, "/AP", "www.mydomain.com", 0, true);
当我查看浏览器中存储的 cookie 时,它看起来像这样:
Name: id
Content: 100
Domain: .www.mydomain.com
Path: /AP
注意 .在域中
当我在 javascript 中设置 cookie 时,我得到相同的结果,除了:
Name: id
Content: 100
Domain: www.mydomain.com
Path: /AP
域不同。为什么我的 PHP cookie 会放一个“.”在 www.mydomain.com 前面,而 javascript 则没有。
以下是我用来创建 cookie 的 JavaScript 代码:
function SetCookie(cookieName,cookieValue,nDays) {
var today = new Date();
var expire = new Date();
if (nDays==null || nDays==0) nDays=1;
expire.setTime(today.getTime() + 3600000*24*nDays);
document.cookie = cookieName+"="+escape(cookieValue)
+ ";expires="+expire.toGMTString();
}
有什么想法吗?
更新:
当我尝试使用 JavaScript 中的以下函数读取此内容时:
function ReadCookie(cookieName) {
var theCookie=""+document.cookie;
var ind=theCookie.indexOf(cookieName);
if (ind==-1 || cookieName=="") return "";
var ind1=theCookie.indexOf(';',ind);
if (ind1==-1) ind1=theCookie.length;
return unescape(theCookie.substring(ind+cookieName.length+1,ind1));
}
我无法使用 ReadCookie 函数(上面)从包含以下内容的 cookie 中获取值:
Domain: .www.mydomain.com
但是 cookie 包含:
Domain: www.mydomain.com
工作得很好。
最佳答案
这样以后遇到同样问题的人就可以轻松找到答案。这是我以答复形式发表的评论:
您将 cookie 设置为 httponly ,这意味着 javascript 无法与其交互。删除 setcookie
的最后一个参数或将其设置为 false
,您应该能够使用 javascript 访问它。
setcookie("id", 100, time()+100000, "/AP", "www.mydomain.com", false, false);
很高兴我能提供帮助!
关于php - 使用 PHP 创建 cookie,但从 javascript 读取时遇到困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3393428/