js 放置 cookie、获取 cookie、删除 cookie
这块TM的删不掉
代码如下:
// 自定义 js cookies
var mycookie = { // 放置
set : function(name,value){
var Days = 1; //此 cookie 将被保存 Days 天
var exp = new Date(); //new Date("December 31, 9998");
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}, //获取
get : function(name){
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return null;
}, //删除
del : function(name){
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=mycookie.get(name);
if(cval!=null) document.cookie= name + "="+";expires="+exp.toGMTString();
}
}
如果小伙伴们在实际项目中,发现 cookie 删除不了。这是怎么回事呢? 那就需要看看下面这些东西啦。
cookie 的一些属性:
1. domain:cookie 所在的域,默认为请求地址。如网址 www.baidu.com/test/index,那么 domain 默认为 www.baidu.com。而跨域访问呢,比如域A为 www.baidu.com,域B为 www.goodle.com。那么就需要将 domain 设置为 .com。如果想要产生一个域A 不能访问,而域B 可以访问的,domain 设置为 www.goodle.com。
2. path:cookie 所在的目录,默认为'/',就是根目录。在同一个服务器上有目录如下:/test/,/test/cd/,/test/dd/,现设一个 cookie1 的 path 为 /test/,cookie2 的 path 为 /test/cd/,那么 test 下的所有页面都可以访问到 cookie1,而 /test/ 和 /test/dd/ 的子页面不能访问 cookie2。这是因为 cookie 能让其 path 路径下的页面访问。
3. 浏览器会将 domain 和 path 都相同的 cookie 保存在一个文件里,cookie 间用 * 隔开。
4. 含值键值对的cookie:以前一直用的是 nam=value 单键值对的 cookie,一说到含多个子键值对的就蒙了。现在总算弄清楚了。含多个子键值对的 cookie 格式是name=key1=value1&key2=value2。可以理解为单键值对的值保存一个自定义的多键值字符串,其中的键值对分割符为 &,当然可以自定义一个分隔符,但默认是以 & 为分割符。
js 放置 cookie、获取 cookie、删除 cookie的更多相关文章
- vue.js设置、获取、删除cookie
项目需要前端获取后台返回的cookie,并以此作判断.我是在main.js入口文件下使用的 具体代码: new Vue({ el: '#app', router, template: '<App ...
- js设置,获取,删除Cookie
//JS操作cookies方法! //写cookies function setCookie(name,value) { var Days = 30; var exp = new Da ...
- 顶级域名和二级域名共享cookie及相互删除cookie
在CSDN看到一个cookie设置domain时,如何删除的问题, 自己也只知道domain设置为顶级域名时可以被其他二级域名共享,但是如何删除还是有一点搞不清楚,所以特意测试了下cookie和dom ...
- js设置、修改、获取、删除 cookie
上面这串省略号对于各种吐槽的声音:因为在百度上看到的关于设置cookie的前几篇文章都是错误的: 里面给出的设置cookie的代码是这样的: function setCookie(name,value ...
- Js添加、读取、删除cookie,判断cookie是否有效,指定domain域下主路径path下设置cookie,设置expires过期时间
有时我们需要用cookie保存用户名,记录登录状态,如何正确判断该机用户cookie是否存在呢?不能简单使用a!=”这样的写法. 正确方法是:判断是否存在名为username3的cookie,使用do ...
- iOS UIWebView 和 WKWebView 的 cookie 获取,设置,删除
Cookie简介说到Cookie,或许有些小伙伴会比较陌生,有些小伙伴会比较熟悉.如果项目中,所有页面都是纯原生来实现的话,一般Cookie这个东西或许我们永远也不会接触到.但是,这里还是要说一下Co ...
- 用js读、写、删除Cookie
//已经验证过 // JavaScript Document //使用说明: //设置缓存:setCookie("name",value); //获取缓存:var name=ge ...
- JS设置、获取和取消Cookie
// 设置cookie function setCookie(name, value, seconds, domain) { seconds = seconds || 0; // se ...
- js设置、读取、删除cookie
设置cookie: function setCookie(oJson , time){ var data = new Date( new Date().getTime() + time*24*60*6 ...
- 设置,获取,删除cookie
function setCookie(key,value,options){ if (value !== undefined ) { if(options === undefined || optio ...
随机推荐
- vscode: Visual Studio Code 常用快捷键
vscode: Visual Studio Code 常用快捷键 主命令框 F1 或 Ctrl+Shift+P: 打开命令面板.在打开的输入框内,可以输入任何命令,例如: 按一下 Backspace ...
- BAPI_GOODSMVT_CREATE 移动类型311 CODE = '04' 代码
DATA: MAT_DOC LIKE BAPI2017_GM_HEAD_RET-MAT_DOC. "物料凭证编号 DATA: GMHEAD LIKE BAPI2017_GM_H ...
- Oracle数据库创建数据库实例1
http://jingyan.baidu.com/article/ae97a646d128d5bbfd461d00.html
- 不同浏览器对URL最大长度的限制
不同浏览器对URL最大长度的限制 1.今天碰到一个bug,window.open后面的页面,接收参数不全,导致后台报错.实验了一下.发现是使用get方法请求服务器时,URL过长所致 微软官方的说明 ...
- VS2013中使用QT插件后每次重新编译问题
环境 系统:win7 64位旗舰版 软件:VS2013.QT5.5.1-32位.Qt5 Visual Studio Add-in1.2.4 概述 使用QT Visual Studio插件打开pro项目 ...
- 2014最热门、最具争议的10个Java话题
Java 的哪些内容已在2014年死去,Java 的哪些变更又遭到整个Java社区的竭力反对?请随我们一起来回顾在2014年这个多事之秋中Java都发生了哪些变化,以及小伙伴们都在JAXenter热烈 ...
- Android应用程序组件介绍
应用程序组件是Android应用程序的基本构建单元.每个组件是系统进入你的应用程序的不同入口点.不是所有的组件对于用户都是实际上的入口点,有些是互相依赖的,但是每个组件都有特定的作用——每个都是唯一的 ...
- Date 和 SimpleDateFormat 类表示时间
Date now=new Date(); // 使用format()方法将日期转换为指定格式的文本 SimpleDateFormat sdf1 = new SimpleDateFormat(" ...
- 使用jQuery的hover事件在IE中不停闪动的解决方法
在使用jQuery的hover事件时,经常会因为鼠标滑动过快导致菜单不停闪动的情况,相信很多朋友都遇到过自己做的纵向下拉菜单不停的收缩,非常的讨厌.今天在给一个网站设计菜单时也遇到了这个情况,结果在百 ...
- 转Rollback后undo到底做了些什么?
转自:http://biancheng.dnbcw.info/oracle/309191.html Rollback后undo到底做了些什么? 从概念上讲,undo正好与redo相对.当你对数据执行修 ...