js 设置cookie 的有效期、访问权限

来源:互联网 发布:开淘宝店需要什么 编辑:程序博客网 时间:2024/05/23 16:12

js 设置cookie 的有效期、访问权限  

读取cookie字符串方法:alert(document.cookie); 一个网站的cookie字符串可能包含多个cookie,多个cookie之间用分号隔开,例如,包含2个cookie的字符串格式为 key1=value1;key2=value2。一个cookie字符串最长为4k,如果超过4k,将返回空值,

设置一个cookie的方法:document.cookie="key=value;expires=date;path=/;domain=xxx.com;secure"

要设置多个cookie 只要反复使用 document.cookie = XXX 即可,会自动和其他cookie拼接成一个cookie字符串。

如果要读取某个cookie的值,只能通过解析cookie字符串来得到。

下面是设置cookie时的几个参数

1、名和值:key 为 cookie名称,value为cookie值

2、过期时间:expires用于设置过期时间,为格林威治字符串格式,如 expires = new Date('2011-12-30').toUTCString();

如果没有设置过期时间,cookie将在浏览器关闭时失效。

3、所属路劲:网站某张网页中的脚本所设置的cookie默认情况下只能供该网页所在文件夹及其子文件夹中的网页访问,如 http://www.xxxxx.com/aa/1.html 所设置的cookie 不能被 http://www.xxxxx.com/bb/2.html 访问,更多的时候都希望一个cookie能被本站所有网页访问,这就需要设置path属性, path=/ 表示该cookie的所属路劲是网站根目录,这样本站所有网页都能访问。

4、所属域名:cookie无法跨域访问,一般情况下,cookie仅供本站使用,如果想在多个网站下共享,那么共享cookie的网站必须拥有同一个主域名,通过设置 domain属性来实现。比如,如果想让 www.aaa.com 和 bbs.aaa.com这两个2级域名下的网站共享cookie,在设置cookie时需要设置domain=aaa.com

5、加密传输:如果一个cookie带有属性secure,那么cookie在传输到服务器的过程中将使用加密数据的方式传输。


cookie字符串编码:cookie字符串中不能包含空格,分号,逗号等特殊符号,如果可能包含这些符号,可以使用encodeURIComponent()函数将 cookie 的值进行编码,读取 cookie 的值时再使用decodeURIComponent()函数把值进行转换回来,如 document.cookie="key="+encodeURIComponent(value);


********************************************************************************

function SetCookie (name, value) {  //设置
 

     var exp = new Date();
      exp.setTime (exp.getTime()+3600000000);
      document.cookie = name + "=" + value + "; expires=" +exp.toGMTString()+"; path=/";
}

function getCookieval_r(offset) {
 var endstr = document.cookie.indexOf (";",offset);
 if (endstr == -1) endstr =document.cookie.length;
    returnunescape(document.cookie.substring(offset, endstr));
 }
function DelCookie(name) //删除
{
var exp = new Date();
exp.setTime (exp.getTime() - 1);
var cval = GetCookie (name);
document.cookie = name + "=" + cval + "; expires="+exp.toGMTString();
}

function GetCookie(name) { //获取
        var arg = name + "=";
        var alen = arg.length;
        var clen = document.cookie.length;
        var i = 0;
        while (i < clen) {
            var j = i + alen;
            if (document.cookie.substring(i, j) == arg) return getCookieVal(j);
            i = document.cookie.indexOf(" ", i) + 1;
            if (i == 0) break;
        }
     return null;
 }


原创粉丝点击