jQuery 可以通过 jquery.cookie.js 插件来操作 Cookie。
用NuGet安装:PM>Install-Package js-cookie -Version
官网:https://www.npmjs.com/package/js-cookie#direct-download
点击下载:https://github.com//js-cookie/js-cookie/archive/master.zip
直接在jQuery.js之后引用 :
<script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"></script>
基本用法
创建一个在整个网站上有效的Cookie:
创建一个从现在起7天后过期的cookie,在整个站点上有效:
创建一个过期的cookie,对当前页面的路径有效:
读取cookie:
阅读所有可见的Cookie:
删除cookie:
删除对当前页面路径有效的cookie:
重要!删除cookie时,必须传递用于设置cookie的完全相同的路径和域属性,除非您依赖于默认属性。
注意:删除未存在的cookie不会引发任何异常,也不会返回任何值
Cookie属性
Cookie属性默认值可以通过设置Cookies.defaults
对象的属性来全局设置,也可以Cookies.set(...)
通过在最后一个参数中传递普通对象来为每个调用单独设置。每次调用属性会覆盖默认属性。
expires
定义何时删除cookie。值可以是Number
将被解释为创建时或Date
实例的天数。如果省略,cookie将成为会话cookie。
要创建在不到一天的时间内到期的cookie
默认值:用户关闭浏览器时会删除Cookie。
例子:
path
A String
表示cookie可见的路径。
默认: /
例子:
关于Internet Explorer的注意事项:
由于底层WinINET InternetGetCookie实现中存在一个模糊的错误,如果使用包含文件名的路径属性设置,IE的document.cookie将不会返回cookie。
这意味着path: window.location.pathname
如果这样的路径名包含如下所示的文件名,则无法设置路径:( /check.html
或者至少,这样的cookie无法正确读取)。
domain
A String
表示cookie应该可见的有效域。cookie也将对所有子域可见。
默认值: Cookie仅对创建cookie的页面的域或子域可见,Internet Explorer除外(请参见下文)。
例子:
假设正在创建的cookie site.com
:
关于Internet Explorer默认行为的注意事项:
如果我没有为cookie指定DOMAIN属性,IE会将它发送到所有嵌套的子域吗。例子上设置的cookie将发送到sub2.sub1.example.com。在这方面,Internet Explorer与其他浏览器不同。这意味着如果省略该domain
属性,它将在IE中显示为子域。
secure
任一true
或false
,表示如果cookie传输需要安全协议(HTTPS)。
默认值:无安全协议要求。
例子: