这块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的更多相关文章

  1. vue.js设置、获取、删除cookie

    项目需要前端获取后台返回的cookie,并以此作判断.我是在main.js入口文件下使用的 具体代码: new Vue({ el: '#app', router, template: '<App ...

  2. js设置,获取,删除Cookie

    //JS操作cookies方法! //写cookies function setCookie(name,value) {     var Days = 30;     var exp = new Da ...

  3. 顶级域名和二级域名共享cookie及相互删除cookie

    在CSDN看到一个cookie设置domain时,如何删除的问题, 自己也只知道domain设置为顶级域名时可以被其他二级域名共享,但是如何删除还是有一点搞不清楚,所以特意测试了下cookie和dom ...

  4. js设置、修改、获取、删除 cookie

    上面这串省略号对于各种吐槽的声音:因为在百度上看到的关于设置cookie的前几篇文章都是错误的: 里面给出的设置cookie的代码是这样的: function setCookie(name,value ...

  5. Js添加、读取、删除cookie,判断cookie是否有效,指定domain域下主路径path下设置cookie,设置expires过期时间

    有时我们需要用cookie保存用户名,记录登录状态,如何正确判断该机用户cookie是否存在呢?不能简单使用a!=”这样的写法. 正确方法是:判断是否存在名为username3的cookie,使用do ...

  6. iOS UIWebView 和 WKWebView 的 cookie 获取,设置,删除

    Cookie简介说到Cookie,或许有些小伙伴会比较陌生,有些小伙伴会比较熟悉.如果项目中,所有页面都是纯原生来实现的话,一般Cookie这个东西或许我们永远也不会接触到.但是,这里还是要说一下Co ...

  7. 用js读、写、删除Cookie

    //已经验证过 // JavaScript Document //使用说明:  //设置缓存:setCookie("name",value); //获取缓存:var name=ge ...

  8. JS设置、获取和取消Cookie

    // 设置cookie   function setCookie(name, value, seconds, domain) {       seconds = seconds || 0; // se ...

  9. js设置、读取、删除cookie

    设置cookie: function setCookie(oJson , time){ var data = new Date( new Date().getTime() + time*24*60*6 ...

  10. 设置,获取,删除cookie

    function setCookie(key,value,options){ if (value !== undefined ) { if(options === undefined || optio ...

随机推荐

  1. attr绑定

    目的 attr绑定可以设置DOM元素的属性值.例如,当我们需要设置title的值,或者一个img的src值,或者一个超链接的href,使用属性绑定会在model的值发生改变时动态的更新绑定的属性值. ...

  2. javascript深入理解js闭包(个人理解,大神勿喷)

    一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量 ...

  3. C# lesson3

    一.局部变量和成员变量 1.程序入口(Main)要调用非静态成员(变量或方法)的话,是需要通过对象去调用的: 2.普通方法里面去调用变量或方法的话可以直接调用 成员变量(全局变量):放在Main方法之 ...

  4. 【.NET】上传文件,生成缩略图

    类名:Upload using System; using System.Collections; using System.ComponentModel; using System.Data; us ...

  5. Hibernate5-课程笔记6

    Hibernate检索优化: 检索即查询.为了减轻DB的访问压力,提高检索效率,Hibernate对检索进行了优化. 所谓检索优化,指的是对查询语句的执行时机进行了细致.严格的把控:并不是代码中一出现 ...

  6. Linux服务器建站基础-选择何种配置和安装环境项目

    我们准备在搬瓦工笔记中,边整理和分享利用Linux VPS建站过程的同时,也会分享关于用户在选择和使用VPS服务器以及网站管理运营中的一些心得和建议.经常有很多网友在很多主机论坛.QQ群众问道,有没有 ...

  7. BBED跳过归档

    通过BBED 跳过归档,以当前数据库 8号文件为例: SQL; FILE# NAME ---------- ---------------------------------------------- ...

  8. FZU 2193 So Hard

    #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using ...

  9. apache动态编译与静态编译

    静态: 在使用./configure 编译的时候,如果不指定某个模块为动态,即没有使用:enable-mods-shared=module或者enable-module=shared 这个2个中的一个 ...

  10. POJ 2484 A Funny Game(找规律)

    题目链接 #include<iostream> #include<cstdio> using namespace std; int main() { int n; while( ...