js操作cookie

以下内容属于个人理解,如有错误欢迎指正。

cookie:为了辨别用户身份而进行的session跟踪存储在本地终端上的数据。


cookie的工作原理:

初次:

服务器  —(写入信息)—>  客户端

以后:

客户端  —(cookies)—>  服务器

服务器  —(HTML代码)—>  客户端


cookies信息:

name:cookie名称

value:对应cookie名称的值

domain:可以访问此cookie的域名,若非当前设置的域名则无法访问

path:可以访问此cookie的页面路径。比如domain设置为二级域名abc.com,path是/test,那么只有/test路径下的页面能访问cookie值

expires/Max-Age:cookie超时时间。若不设置默认值是Session,即和Session一起失效

补充:

如果max-age属性为正数,则表示该cookie会在max-age秒之后自动失效。浏览器会将max-age为正数的cookie持久化,即写到对应的cookie文件中。无论客户关闭了浏览器还是电脑,只要还在max-age秒之前,登录网站时该cookie仍然有效。

如果max-age为负数,则表示该cookie仅在本浏览器窗口以及本窗口打开的子窗口内有效,关闭窗口后该cookie即失效。max-age为负数的Cookie,为临时性cookie,不会被持久化,不会被写到cookie文件中。cookie信息保存在浏览器内存中,因此关闭浏览器该cookie就消失了。cookie默认的max-age值为-1。

‍如果max-age为0,则表示删除该cookie。cookie机制没有提供删除cookie的方法,因此通过设置该cookie即时失效实现删除cookie的效果。失效的Cookie会被浏览器从cookie文件或者内存中删除。

size:cookie大小

secure:设置是否只能通过https来传递此条cookie。(布尔值)

js对cookie值得操作:

获取Cookies:

function getCookie(name){

    var arr,reg=new RegExp("(^|)"+name+"=([^;]*)(;|$)");

    if(arr=document.cookie.match(reg)){

        return unescape(arr[2]);

    }else{

        return null;

    }

}

getCookie("name");


设置Cookies:

function setCookie(name,value){

    var Days=30;

    var exp=new Date();

    exp.setTime(exp.getTime()+Days*24*60*60*1000);//超时时间

    document.cookie=name+"="+escape(value)+";expires="+exp.toGMTString();

}

setCookie("name",123);


删除Cookies:

function delCookies(name){

    var exp=new Date();

    exp.setTime(exp.getTime()-1);//设置超时时间,类删除

    var cval=this.getCookie(name);

    if(cval!=null){

         document.cookie=name+"="+escape(value)+";expires="+exp.toGMTString();

    }

}

delCookies("name");

参考网站:

点击打开链接

点击打开链接


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页