日期:2014-05-16  浏览次数:20439 次

js中的cookie问题?
最近在写asp登陆页面的时候发现了一些问题!当用用户登陆成功,我想保留用户的登陆状态(我使用的是cookie)。通过设置cookie的Expires属性来保存它的生命周期!我是使用js脚本写的
代码如下:

<
var username=Request.Form("username");//从注册页面获取的信息
Response.cookies("beifeng")("username")=username;
Response.cookies("beifeng")("username").Expires=new Date().getMinutes()+60*24;//在这里我想将cookies保存一天,但是报错,我已经声明,用的是js脚本!
>

报错如下:为“Expires”指定的日期早于 1980 年 1 月 1 日,或晚于 2038 年 1 月19 日,3:14:07 GMT

------解决方案--------------------
这是JS的写法,后台asp怎么写不知道,不过道理是一样的,expires指的是一个日期,不是时长


var d = new Date();
d.setTime(d.getTime() + 24 * 60 * 60);
document.cookie = 'username=lz;expires=' + d.toGMTString();

------解决方案--------------------

/*
 *设置Cookie 
 *
 * name:cookie所对应的键
 * value:cookie所对应的值
 * expires:cookie所对应的有效时间
 * path:指定可访问cookie的路径
 * domain:指定可访问cookie的主机名
 * secure:安全性
 */
function setCookie (name,value,expires,path,domain,secure) {    
    //cookie键值对 
    var str = name + "=" + escape(value);
    //设置cookie的有效期,以小时为单位
    if(expires > 0){                               
        var date = new Date();
        var ms = expires * 3600 * 1000;
        date.setTime(date.getTime() + ms);
        str += "; expires=" + date.toGMTString();
    }
    if(path){
        str += "; path=" + path;
    }
    if(domain){
        str += "; domain=" + domain;
    }
    if(secure){
        str += "; secure";
    }
    document.cookie = str;
}
/*
 *获得Cookie 
 *
 *cookie_name:cookie的键
 */
function getCookie(cookie_name)  
{     
    var value = null;
    var allcookies = document.cookie;  
    var cookie_pos = allcookies.indexOf(cookie_name);  
    // 如果找到了索引,就代表cookie存在,  
    // 反之,就说明不存在。  
    if (cookie_pos != -1)  
    {  
        // 把cookie_pos放在值的开始,只要给值加1即可。  
        cookie_pos += cookie_name.length + 1;  
      &nbs