Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >js中的操作cookie的方法

js中的操作cookie的方法

作者头像
用户9914333
发布于 2022-07-22 06:46:37
发布于 2022-07-22 06:46:37
5.2K00
代码可运行
举报
文章被收录于专栏:bug收集bug收集
运行总次数:0
代码可运行

01 cookie介绍

JavaScript 可以使用 document.cookie 属性来创建 、读取、及删除 cookie。

JavaScript 中,创建 cookie 如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
document.cookie="username=John Doe";

您还可以为 cookie 添加一个过期时间(以 UTC 或 GMT 时间)。

默认情况下,cookie 在浏览器关闭时删除:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
document.cookie="username=John Doe;expires=Thu, 18 Dec 2043 12:00:00 GMT";

您可以使用 path 参数告诉浏览器 cookie 的路径。默认情况下,cookie 属于当前页面。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
document.cookie="username=John Doe; expires=Thu, 18 Dec 2043 12:00:00 GMT; path=/";

02 原生js操作cookie

在 JavaScript 中, 可以使用以下代码来读取 cookie:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var x = document.cookie;

cookie 的操作,添加,修改,删除等,没有提供对应的方法,需要自己去处理document.cookie中的字符串。

可参考如下代码:

//设置cookie, 参数:键,值 ,有效时间:单位天

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function setCookie(cname,cvalue,exdays){
    var d = new Date();
    d.setTime(d.getTime()+(exdays*24*60*60*1000));
    var expires = "expires="+d.toGMTString();
    document.cookie = cname+"="+cvalue+"; "+expires;
}

//获取cookie值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function getCookie(cname){
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
        var c = ca[i].trim();
        if (c.indexOf(name)==0) { return c.substring(name.length,c.length); }
    }
    return "";
}

03 jQuery Cookie

jQuery Cookie 是一个简单、轻巧的jQuery插件,主要用于读取,编写和删除cookie。因为是主要是为了增强jQuery的功能,因此对于许多之前用过jQuery的同学而言,其使用起来更加的方便。

要想使用jQuery Cookie,首先要在页面上引入两个JS文件,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script src="https://cdn.staticfile.org/jquery/3.4.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>

下面我们来看下使用jQuery Cookie是如何操作Cookie的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//创建一个Cookie,属性默认
$.cookie('password', '123456');
//创建一个Cookie,设置属性:有效天数,path
$.cookie('attribute', 'pathDomain', { expires: 7, path: '/' });
//读取所有Cookie,返回{name1:value1,...,namen:valuen}  JSON格式
$.cookie();
//获取指定name的Cookie的值
$.cookie("password");
//修改Cookie,重新创建一遍,name相同会覆盖之前Cookie,修改了过期时间
$.cookie('attribute', 'pathDomain', { expires: 14, path: '/' });
//删除Cookie,可以指定过期时间为当前时间;注意:因为过期时间以浏览器的服务器时间为准,一般会有八小时时差
$.removeCookie('password');

注意:如果创建Cookie时,指定了Cookie的path和domain属性,则删除时,同样需要传入相同的参数。

04 js-cookie

js-cookie一个简单、轻巧的处理Cookie的JavaScript的API。这么看来其和jQuery Cookie相差似乎不大,两个插件的体积也都不大,压缩后都是1Kb左右,但是js-cookie的一个优势就是不需要依赖jQuery,这样我们在使用Vue等其他前端框架时可以更方便的使用。

除了上述,js-cookie官网上对其介绍如下所述:

可以在所有浏览器上工作支持任何字符

经过严格的测试没有任何依赖

支持ES模块支持AMD/CommonJS

实用的wiki文档支持自定义编码/解码

体量小

下面就让我们一起来体验下js-cookie,

首先,在页面上引入JS文件,代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script src="https://cdn.jsdelivr.net/npm/js-cookie@rc/dist/js.cookie.min.js"></script>

注:引入JS文件后,可以直接使用

之后我们就可以直接使用js-cookie提供的一个Cookie对象,其中提供了许多操作Cookie的方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//创建一个Cookie,属性默认
Cookies.set('password', '123456');
//创建一个Cookie,设置属性:有效天数,path
Cookies.set('attribute', 'pathDomain', { expires: 7, path: '/' })
//读取所有Cookie,返回{name1:value1,...,namen:valuen}  JSON格式
Cookies.get();
//获取指定name的Cookie的值
Cookies.get("password");
//修改Cookie,重新创建一遍,name相同会覆盖之前Cookie,修改了过期时间
Cookies.set('attribute', 'pathDomain', { expires: 14, path: '/' })
//删除Cookie,可以指定过期时间为当前时间;注意:因为过期时间以浏览器的服务器时间为准,一般会有八小时时差
Cookies.remove("password");

我们可以发现js-cookie中的API的使用和jQuery Cookie是非常类似的,参数列表基本一致,因此使用起来也是上手很快。

需要注意的是,这里删除Cookie时,同样需要传入Cookie创建时相同的参数。

总结:

jQuery Cookie、js-cookie的使用方法,两者的使用非常类似,大家也可以根据自己的喜欢来选择,无论哪种,都会比原生的js要方便。这里还是比较推荐js-cookie,因为其不要依赖别的JS,当然还有许多别的好处。

参考:

https://www.runoob.com/js/js-cookies.html

https://blog.csdn.net/qq_34666857/article/details/105703529

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 bug收集 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
cookie和本地存储的区别
cookie 基本概念 cookie非常小,限制在4kb左右,很多浏览器都限制一个站点最多保存20个cookie。 如果没有设置时间,则表示cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就会消失,这种被称为会话cookie,它会被保存在内存中。 当设置了过期时间,浏览器会把cookie保存在硬盘中,关闭浏览器之后任然有效,直到超过设定的过期时间。 设置和获取cookie的方法 原生 // 使用js创建cookie document.cookie="username=John Doe
念念不忘
2019/03/29
2.5K0
Jquery基础(六) js方法清空cookie的各种方法
1,要清空浏览器的所有cookies, 2,要清空某网站的cookies,  //csdn.net的所有cookies
Java架构师必看
2021/05/31
8.1K0
每天一个npm包 之 js-cookie
hello, 大家好,我是 前端学长Joshua (公众号)。 热心于做开源,写文章。 目的为帮助在校大学生,刚入职场的小伙伴可以尽快搭建自己的前端学习体系。 如果你有学习上的困惑,欢迎关注我,找我交流,我实时回复大家。
前端学长Joshua公众号
2021/08/21
1.8K0
jquery 本地存储 cookie 的基本用法
本地存储分为cookie,以及新增的localStorage和sessionStorage 。本篇章专门来讲讲 cookie
Devops海洋的渔夫
2019/05/30
2K0
一文搞明白Cookie、Session与Token
HTTP 协议是一种无状态协议,即每次服务端接收到客户端的请求时,都是一个全新的请求,服务器并不知道客户端的历史请求记录;Session 和 Cookie 的主要目的就是为了弥补 HTTP 的无状态特性
红客突击队
2022/09/30
1.6K0
一文搞明白Cookie、Session与Token
造一个 js-cookie 轮子
Cookie 相信大家都不陌生,但是很多时候我们都是这样:“啊,我这个地方要用 Cookie 了,怎么办?没事,装一个 npm 包嘛”,或者去 MDN 去抄一两个函数。没什么机会手写一个 js-cookie 的库,今天就带大家一起来写一个 js-cookie 的小库。
写代码的海怪
2022/03/29
6140
cookie 详解
HTTP Cookie(也叫 Web Cookie 或浏览器 Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态。Cookie 使基于无状态的 HTTP 协议记录稳定的状态信息成为了可能。
老马
2018/07/31
1.1K0
cookie 详解
Js BOM
所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。
hss
2022/02/25
8220
关于 Cookie,了解这些就足够了
Cookie 是用户浏览器保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。
皮小蛋
2020/03/02
1.8K0
vue之Cookie
Cookie的使用必须基于web服务器,因为Cookie的操作会跟随http请求进行。 Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。 Cookie 并不是它的原意“甜饼”的意思,而是一个保存在客户机中的简单的文本文件,这个文件与特定的 Web 文档关联在一起,保存了该客户机访问这个Web 文档时的信息,当客户机再次访问这个 Web 文档时这些信息可供该文档使用。由于“Cookie”具有可以保存在客户机上的神奇特性,因此它可以帮助我们实现记录用户个人信息的功能,而这一切都不必使用复杂的CGI等程序 。 举例来说,一个 Web 站点可能会为每一个访问者产生一个唯一的ID,然后以 Cookie 文件的形式保存在每个用户的机器上。如果使用浏览器访问 Web,会看到所有保存在硬盘上的 Cookie。在这个文件夹里每一个文件都是一个由“名/值”对组成的文本文件,另外还有一个文件保存有所有对应的 Web 站点的信息。在这里的每个 Cookie 文件都是一个简单而又普通的文本文件。透过文件名,就可以看到是哪个 Web 站点在机器上放置了Cookie(当然站点信息在文件里也有保存) 。 Cookie是一段不超过4KB的小型文本数据,由一个名称(Name)、一个值(Value)和其它几个用于控制Cookie有效期、安全性、使用范围的可选属性组成。
用户9184480
2024/12/13
810
vue之Cookie
javascript设置cookie高级篇可跨域访问
跨域访问cookie (仅支持二级域名) 参考:javascript跨域设置cookie(二级域名)_xuebingnan的博客-CSDN博客
用户8099761
2023/05/11
7250
Angular4.x通过路由守卫进行路由重定向,实现根据条件跳转到相应的页面
需求: 最近在做一个网上商城的项目,技术用的是Angular4.x。有一个很常见的需求是:用户在点击“我的”按钮时读取cookie,如果有数据,则跳转到个人信息页面,否则跳转到注册或登录页面 解决 在这里通过Angular的路由守卫来实现该功能。 1. 配置路由信息 const routes = [ { path: 'home', component: HomeComponent }, { path: 'product', component: ProductComponent }, { pat
寻找石头鱼
2019/08/20
1.4K0
原生js对cookie的增删改查
其中expires的格式为Fri Sep 27 2019 14:27:25 GMT+0800 (中国标准时间)的一个对象.toUTCString
小小咸鱼YwY
2020/06/19
1.4K0
JavaScript中的document.cookie的使用
我们已经知道,在 document 对象中有一个 cookie 属性。但是 Cookie 又是什么?“某些 Web 站点在您的硬盘上用很小的文本文件存储了一些信息,这些文件就称为 Cookie。”—— MSIE 帮助。一般来说,Cookies 是 CGI 或类似,比 HTML 高级的文件、程序等创建的,但是 javascript 也提供了对 Cookies 的很全面的访问权利。
全栈程序员站长
2022/09/18
1K0
jquery.cookie中的操作
jQuery cookie是个很好的方便操作cookie。首先新建一个js文件。代码如下:
DougWang
2020/02/18
8820
这三个精巧且很棒 JS 库,值得你亲手试试
在本文中,介绍3个鲜为人知,但功能非常强大且体积很小的 JavaScript 库,这些可以帮助提高开发效率,减轻开发难度,让你加班少少的,请收纳。
前端小智@大迁世界
2020/05/11
9080
这三个精巧且很棒 JS 库,值得你亲手试试
JS 如何创建、读取和删除cookie
Cookie 为 Web 应用程序保存用户相关信息提供了一种有用的方法。例如,当用户访问咱们的站点时,可以利用 Cookie 保存用户首选项或其他信息,这样,当用户下次再访问咱们的站点时,应用程序就可以检索以前保存的信息。
前端小智@大迁世界
2019/09/03
14K0
JS 如何创建、读取和删除cookie
【安全】 Cookie
后面会把前端进阶的课程内容都总结一遍。有些都是很常见的知识,但是为了梳理自己的知识树,所以尽量模糊的地方都会记录
神仙朱
2020/02/17
1.4K0
HTML页面之间跳转与传值(JS代码)
第一,为什么给window.location和window.kk赋值时一样的,都可以跳转?
mingmingcome
2021/11/29
8.1K0
JavaScript 学习(2)
参考: http://www.w3cschool.cc/js/js-window.html
lpe234
2020/07/28
5460
相关推荐
cookie和本地存储的区别
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验