js中的cookie问题?

maweibinguo 2012-11-02 04:57:36
最近在写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
...全文
175 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
maweibinguo 2013-01-22
  • 打赏
  • 举报
回复
不好意思没有说清楚,是Response.Cookies("beifeng").Expires=thedate.toUTCString()这句话类型不匹配,但我就不明白了,Expires要求的是什么类型,为什么总是说类型不匹配!
maweibinguo 2013-01-22
  • 打赏
  • 举报
回复
if(timeout==1){ Response.Cookies("beifeng")("username")=username;Response.End(); }else if(timeout==2){ var thedate=new Date(); thedate.setDate(thedate.getDate()+1); Response.Cookies("beifeng")("username")=username; Response.Cookies("beifeng").Expires=thedate.toUTCString(); Response.End();} else if(timeout==3){ var thedate=new Date(); thedate.setDate(thedate.getDate()+7); Response.Cookies("beifeng")("username")=username; Response.Cookies("beifeng").Expires=thedate.toUTCString() } 根据timeout的值不同选择cookie的值保存不同的时间,但是依然类型不匹配!
天使小宝 2013-01-22
  • 打赏
  • 举报
回复

/*
 *设置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;  
        var cookie_end = allcookies.indexOf(";", cookie_pos);  
        if (cookie_end == -1)  
        {   
            cookie_end = allcookies.length;  
        }  
        value = unescape(allcookies.substring(cookie_pos, cookie_end));  
    }  
    return value;  
} 
/*
 *删除Cookie 
 *
 *cookie_name:cookie的键
 */
function delCookie(cookie_name)
{
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    var value = getCookie(cookie_name);
    if(value){
        document.cookie= cookie_name + "=" + value + ";expires=" + exp.toGMTString();
    }
}
这是我自己总结的js对Cookie的操作,希望对楼主有所帮助!
似梦飞花 2013-01-22
  • 打赏
  • 举报
回复
document.cookie="name=test;max-age="+24*3600*1000试试
打字员 2012-11-02
  • 打赏
  • 举报
回复
这是JS的写法,后台asp怎么写不知道,不过道理是一样的,expires指的是一个日期,不是时长


var d = new Date();
d.setTime(d.getTime() + 24 * 60 * 60);
document.cookie = 'username=lz;expires=' + d.toGMTString();
maweibinguo 2012-11-02
  • 打赏
  • 举报
回复
那该怎么写?
wbb123yu 2012-11-02
  • 打赏
  • 举报
回复
。。。貌似Expires存的是过期的时间点而不是时长吧

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧