我是JavaScript的新手,所以我有一个简单的问题,我想使用名称= username,value = id和expiry date = 30days的JavaScript设置cookie。我尝试过一些例子但是当我通过浏览器检查cookie时显示 名称:未定义 内容:未定义 过期:在会话结束时
答案 0 :(得分:0)
一个例子是:
function setCookie(name, value, expires, path, domain, secure) {
document.cookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
}
var expires = new Date(new Date().getTime()+30*24*60*60*1000).toGMTString();
setCookie("username", "id", expires);
答案 1 :(得分:0)
如果你在jquery世界,你可能想看看jquery cookie plugin - 你可以说:
$ .cookie('the_cookie','the_value',{expires:7,path:'/'});
并且相对无痛地设置参数。
使用Cookie时,记住域名和域名非常重要。您正在设置查询的路径。将查询设置为路径开始可能是安全的:'/'和域:'yourdomain.com'(以便它适用于所有子域)。
答案 2 :(得分:0)
试试这样:
var now = new Date();
var expire = new Date(now.getTime() + (30 * 24 * 60 * 60 * 1000));
document.cookie = 'username=id' + ';expires=' + expire.toGMTString();
答案 3 :(得分:0)
确保您使用的是根域,以确保可以跨子域访问Cookie(例如:domain.com而不是www.domain.com)。
您是否收到了所有浏览器的相同结果,或者这只是一个Internet Explorer问题?
我经常使用这两个功能而没有问题:
function n__readCookie(n__name)
{
var n__nameEQ = n__name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++)
{
var c = ca[i];
while (c.charAt(0)==' ')
{ c = c.substring(1,c.length); }
if (c.indexOf(n__nameEQ) == 0)
{ return c.substring(n__nameEQ.length,c.length); }
}
return false;
}
function n__createCookie(n__name, n__value, n__days, n__domain)
{
if (n__days)
{
var n__date = new Date();
n__date.setTime(n__date.getTime()+(n__days*24*60*60*1000));
var n__expires = "; expires="+n__date.toGMTString();
}
else
{
var n__expires = "";
}
document.cookie = n__name+"="+n__value+n__expires+"; path=/;domain=" + n__domain;
}