//cookie
var ck = {
getObj:function() {
var ck = document.cookie;
var obj = {};
if(ck!=""){ var ck_array = ck.split(";");
var ck_json = ck_array.map(function(e){
var arry = e.split("=");
obj[arry[0].trim()]=arry[1].trim();
return obj;
});
}
return obj;
},set:function(name, value,options) {
var defaults = {
path: null,
domain: null//默认是当前域,
};
var opt = $.extend({},defaults,options);
var exist = this.getObj().name;
var expire = new Date();
expire.setDate(expire.getDate() + opt.day);//默认是会话cookie
if(exist=="undefined") {
document.cookie = name + '=' + value + ';expires=' + expire.toGMTString() + ';path=' + opt.path ;
}else {
this.del(name);
document.cookie = name + '=' + value + ';expires=' + expire.toGMTString() + ';path=' + opt.path ;
} },del:function(name) {
var exist = this.getObj().name;
if(exist!="undefined") {
var clear = new Date();
clear.setTime(clear.getTime()-1000);
document.cookie = name + '= 5 ;expires=' + clear.toGMTString();
}
}
};

cookie path设置必知:

Firefox 的path 可以随便设置,就算path不在当前location路径也行;

到了chrome下就不能随便了,chrome的path 只能设置当前location中存在的路径,例如:

我当前所在登录页

www.***.com/jr/login/

path设置:

ck.set("username","djh","/");

ck.set("username","djh","/jr");

ck.set("username","djh","/jr/");

ck.set("username","djh","/jr/login");

ck.set("username","djh","/jr/login/");

以上设置都是可以生效的。

所以为了兼容性。设置path的时候,务必设置location中存在的路径,或者直接设置

ck.set("username","djh","/");

这样就整个域都能取到这个cookie;

ps:cookie的path如果不设置或者设置无效的话,浏览器默认是当前位置 /jr/login/

另外cookie的获取也只能在cookie的path路径下的页面才能拿得到

例如我刚刚在登录页设置的cookie

ck.set("username","djh","/jr/login");

那么我在会员中心页 www.***.com/jr/uc/ ,就拿不了这个username的cookie了。

常用的一个cookie 对象,还有path 兼容性问题的更多相关文章

  1. Cookie对象与Session对象-java

    1.Cookie对象 1.1常见的方法 (1)创建Cookie对象,绑定数据 new Cookie(String name, String value) (2)发送Cookie对象 response. ...

  2. 如何在JSP中获得Cookie对象

    Cookie cookies[]=request.getCookies(); //读出用户硬盘上的Cookie,并将所有的Cookie放到一个cookie对象数组里面 Cookie sCookie=n ...

  3. 【转载】Asp.Net中Cookie对象的作用以及常见属性

    Cookie对象是服务器为用户访问存储的特定信息,这些信息一般存储在浏览器中,服务器可以从提交的数据中获取到相应的Cookie信息,Cookie的最大用途在于服务器对用户身份的确认,即票据认证,用户会 ...

  4. 无废话Android之listview入门,自定义的数据适配器、采用layoutInflater打气筒创建一个view对象、常用数据适配器ArrayAdapter、SimpleAdapter、使用ContentProvider(内容提供者)共享数据、短信的备份、插入一条记录到系统短信应用(3)

    1.listview入门,自定义的数据适配器 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/and ...

  5. ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目

    ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml)   我们都知道在使用WebApi的时候Controller会自动将Action的返回值自动进行各种序列化处理(序列化为 ...

  6. Cookie对象工具包,对象添加,获取,修改-亲测可用

    先来了解下Cookie 和 Session对象的概念吧. 首先,Cookie是客户端缓存技术,大小一般为4kb左右,主要存储一些比较小的信息,常用的例子有用户名和密码,且是不安全的: Session是 ...

  7. Application对象、Session对象、Cookie对象、Server对象初步认识

    Application对象:记录应用程序参数的对象 用于共享应用程序级信息,即多个用户共享一个Application对象.在第一个用户请求ASP.NET文件时,将启动应用程序并创建Applicatio ...

  8. 初识 Asp.Net内置对象之Cookie对象

    Cookie对象 Cookie对象用于保存客户端浏览器请求的服务器页面,也可用于存放非敏感性的用户信息,信息保存的时间可以根据用户的需要经行设置.并非所有的浏览器都支持Cookie,并非数据信息都是以 ...

  9. BOM 浏览器对象模型_不超过 4 KB 的 document.cookie 对象

    注意: 客户端储存应该使用 Web storage API 和 IndexedDB,不推荐使用 Cookie document.cookie 对象 是服务器保存在浏览器的一小段文本信息 用于读写当前网 ...

随机推荐

  1. less 命令(转)

    原文:http://www.cnblogs.com/peida/archive/2012/11/05/2754477.html less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux ...

  2. java创建线程的三种方式及其对比

    第一种方法:继承Thread类,重写run()方法,run()方法代表线程要执行的任务.第二种方法:实现Runnable接口,重写run()方法,run()方法代表线程要执行的任务.第三种方法:实现c ...

  3. PHP採集利器:依据開始字符串和结束字符串截取须要的採集内容数据

    PHP採集利器:依据開始字符串和结束字符串截取须要的採集内容数据 function strCutByStr(&$str, $findStart, $findEnd = false, $enco ...

  4. Win10怎么设置点击任务栏上文件夹图标直接打开“我的电脑”?

    我们都知道Win10任务栏上的文件夹图标可以打开文件资源管理器,但是点击这个图标后打开的位置却是不固定的,有可能是库文件夹,也有可能是其他常用的位置.怎么设置点击这个图标后直接打开"此电脑& ...

  5. jdbc第二天

    事务 l 连接池 l ThreadLocal l BaseServlet自定义Servlet父类(只要求会用,不要求会写) l DBUtils à commons-dbutils 事务 l 事务的四大 ...

  6. ConcurrentHashMap并不是绝对线程安全的

    import java.util.HashMap; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; publi ...

  7. SQL Union作用

    动态构造一个SQL语句然后执行,构造动态语句的查询语句如下 SELECT REPLACE(WMSYS.WM_CONCAT(STR),',',' UNION ') FROM (SELECT 'SELEC ...

  8. Linux ssh服务开启秘钥和密码认证

    问题描述: 实现Linux秘钥和密码同时认证 解决方案: vim /etc/ssh/sshd_config 基本参数: PermitRootLogin yes #允许root认证登录 Password ...

  9. android上进行c/C++开发测试(转)

    Android C编程技巧 运行模拟器 emulator -console * 将文件写入到模拟器的userdata.img文件中 adb push *将一个目录拷贝到模拟器中,包括子目录 adb p ...

  10. HDUOJ------(1230)火星A+B

    火星A+B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...