怎么设置cookie,怎么设置cookie以及删除cookie和cookie详解

在操作cookie之前,先来看一下cookie长什么样。

可以看到,cookie是一个个键值对(“键=值”的形式)加上分号空格隔开组合而成, 形如: "name1=value1; name2=value2; name3=value3"

设置cookie:

 1 /**
 2      * 设置cookie
 3      * @param name cookie的名称
 4      * @param value cookie的值
 5      * @param day cookie的过期时间
 6      */
 7     var setCookie = function (name, value, day) {
 8       if(day !== 0){     //当设置的时间等于0时,不设置expires属性,cookie在浏览器关闭后删除
 9         var expires = day * 24 * 60 * 60 * 1000;
10         var date = new Date(+new Date()+expires);
11         document.cookie = name + "=" + escape(value) + ";expires=" + date.toUTCString();
12       }else{
13         document.cookie = name + "=" + escape(value);
14       }
15     };

 

注意:expires使用GMT或UTC格式的时间, 我这里没有指定路径(path)和域(domain),  当没有指定路径时默认为当前路径下,如对 于“https://home.cnblogs.com/u/maderlzp/”下设置的cookie,其path为"/u/maderlzp", 其domain为当前域名“home.cnblogs.com”。

为什么有时候删除不了cookie? 可能是因为删除cookie时没有指定该cookie的path和domain,导致找不到这个cookie来设置过期时间而无法删除。



获取cookie:
/**
     * 获取对应名称的cookie
     * @param name cookie的名称
     * @returns {null} 不存在时,返回null
     */
    var getCookie = function (name) {
      var arr;
      var reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
      if (arr = document.cookie.match(reg))
        return unescape(arr[2]);
      else
        return null;
    };

  

 

cookie获取正则解析:
"(^| )" + name + "=([^;]*)(;|$)"  (^| )匹配cookie开头或空格(cookie键值对之间用分号空格隔开),也就是cookie键值对的开始。接着是cookie的名称name,([^;]*)匹配除分号以外的任意字符,也就是cookie键值对的值。最后(;|$)匹配分号或整个cookie的结尾,也就是cooke键值对的结尾。

更多正则的语法详解请参考:

正则表达式的用法和常用实例【1】



删除cookie:

1 /**
2      * 删除cookie
3      * @param name cookie的名称
4      */
5     var delCookie = function (name) {
6       setCookie(name, ‘ ‘, -1);
7     };

设置要删除的cookie的expires为过去的时间即可

修改cookie:

使用上面设置cookie的方法,重新给要修改的cookie赋值就行,这样旧的就会被覆盖掉

cookie的主要作用:

Cookie主要用在以下三个方面:

  • 会话状态管理(如用户登录状态、购物车、游戏分数和其它需要记录的信息)
  • 个性化设置(如用户自定义设置、主题等)
  • 浏览器行为跟踪(如跟踪分析用户行为)

cookie设置语法:

document.cookie = "cookieName=mader; expires=Fri, 31 Dec 2017 15:59:59 GMT; path=/mydir; domain=cnblogs.com; max-age=3600; secure=true";

  • cookieName=mader :name=value,cookie的名称和值
  • expires=Fri, 31 Dec 2017 15:59:59 GMT: expires,cookie过期的日期,如果没有定义,cookie会在对话结束时过期。日期格式为 new Date().toUTCString()
  • path=/mydir: path=path (例如 ‘/‘, ‘/mydir‘) 如果没有定义,默认为当前文档位置的路径。
  • domain=cnblogs.com: 指定域(例如 ‘example.com‘, ‘.example.com‘ (包括所有子域名), ‘subdomain.example.com‘) 如果没有定义,默认为当前文档位置的路径的域名部分。
  • max-age=3600: 文档被查看后cookie过期时间,单位为秒
  • secure=true: cookie只会被https传输 ,即加密的https链接传输

原文地址:https://www.cnblogs.com/guohu/p/11684667.html

时间: 2024-12-10 05:50:31

怎么设置cookie,怎么设置cookie以及删除cookie和cookie详解的相关文章

搜索系统中所有以.repo结尾的文件并删除(find命令详解及xargs命令详解)

find / -name *.repo | xargs rm –rf //搜索以.repo结尾的文件并删除 find命令详解 精细查找文件或目录d find [ 查找范围 ] [ 查找条件表达式 ] 常用查找条件: 按名称查找:"-name",支持通配符"*"."?" 按文件大小查找:"-size",可使用"+"."-"作为容量条件 按文件属主查找:"-user" 按

Android ListView滑动删除及响应事件详解

目标:实现类似QQ,微信的消息列表滑动删除 具体操作: 1. 主页面布局 首先在布局文件(本例是activity_main.xml)中引入ListView控件,并指定id(如下代码中黑体部分). <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" andr

mysql表的清空、删除和修改操作详解

个人原创 : http://www.phpthinking.com/archives/365 一.清除mysql表中数据 delete from 表名; truncate table 表名; 不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内容. 效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据. delete的效果有点像将mysql表中所有记录一条一条删除到删完,

封装 cookie 添加、查询、删除函数 、hash

cookie: 会话跟踪技术 客户端 session: 会话跟踪技术 服务端 cookie作用: 将页面的数据保存到浏览器中 cookie生命周期: 一次会话:打开浏览器到关闭浏览器 如果通过expires=设置了过期时间,并且过期时间没有过期,那么下一次打开浏览器还会存在 cookie注意点: cookie 默认不会保存任何的数据 cookie 不能一次性设置多条数据,想保存多条数据,只能一条一条设置 coolie 有大小和个数的限制 个数:20~50 大小:4kB 左右 cookie作用范围

php之Cookie与Session详解

Cookie管理 Cookie是在HTTP协议下,通过服务器或脚本语言可以维护客户浏览器上信息的一种方式,Cookie的使用很普遍,许多提供个人化服务的网站都是利用Cookie来区别不同用户,以显示与用户相应的内容,如Web接口的免费E-Mail网站,就需要用到Cookie. 1.什么是Cookie Cookie是一种在客户浏览器端存储数据并以此来跟踪和识别用户的机制.简单的说,Cookie是Web服务器暂时存储在用户磁盘上的一个文本文件,并随后被Web浏览器读取.当用户再次访问该Web网站时,

cookie的设置、获取以及删除

首先介绍一下cookie的基本信息: cookie是以域为单位的,它必须放在服务器的的环境下,但是cookie的容量小,只有4kb,并且也不安全,还有入股cookie的名字相同,会修改或者覆盖原来的值,如果名字不同,会添加一条cookie: 接下来再和大家说一声关于获取cookie: 获取到cookie的格式都是字符串: 父级种下的cookie,子级可以获取到:子级种下的cookie,父级获取不到: 还有就是cookie的path:可以设置,一般都是设置到 '/' 根目录下: 好了,下面就是我封

cookie的设置获取和删除

cookie是运行在客户端的,可以用JS来设置cookie. 首先需要稍微了解一下cookie的结构,简单地说:cookie是以键值对的形式保存的,即key=value的格式.各个cookie之间一般是以";"分隔. JS设置cookie: 假设在A页面中要保存变量username的值("jack")到cookie中,key值为name,则相应的JS代码为: 代码如下: document.cookie="name="+username; JS读取

ThinkPHP源码学习 cookie函数 设置 取值 删除

/** * Cookie 设置.获取.删除 * @param string $name cookie名称 * @param mixed $value cookie值 * @param mixed $option cookie参数 * @return mixed */ 系统内置了一个cookie函数用于支持和简化Cookie的相关操作,该函数可以完成Cookie的设置.获取.删除操作. Cookie设置 cookie('author','津沙港湾','3600'); 执行代码段 $expire =

js封装Cookie操作 js 获取cookie js 设置cookie js 删除cookie

每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code var CookieUtil = { // 设置cookie set : function (name, value, expires, domain, path, secure) { var cookieText = ""; cookieText += encodeURIComponent(name) + "=" + encodeURIComponen