常用的一个cookie 对象,还有path 兼容性问题
//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 兼容性问题的更多相关文章
- Cookie对象与Session对象-java
1.Cookie对象 1.1常见的方法 (1)创建Cookie对象,绑定数据 new Cookie(String name, String value) (2)发送Cookie对象 response. ...
- 如何在JSP中获得Cookie对象
Cookie cookies[]=request.getCookies(); //读出用户硬盘上的Cookie,并将所有的Cookie放到一个cookie对象数组里面 Cookie sCookie=n ...
- 【转载】Asp.Net中Cookie对象的作用以及常见属性
Cookie对象是服务器为用户访问存储的特定信息,这些信息一般存储在浏览器中,服务器可以从提交的数据中获取到相应的Cookie信息,Cookie的最大用途在于服务器对用户身份的确认,即票据认证,用户会 ...
- 无废话Android之listview入门,自定义的数据适配器、采用layoutInflater打气筒创建一个view对象、常用数据适配器ArrayAdapter、SimpleAdapter、使用ContentProvider(内容提供者)共享数据、短信的备份、插入一条记录到系统短信应用(3)
1.listview入门,自定义的数据适配器 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/and ...
- 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的返回值自动进行各种序列化处理(序列化为 ...
- Cookie对象工具包,对象添加,获取,修改-亲测可用
先来了解下Cookie 和 Session对象的概念吧. 首先,Cookie是客户端缓存技术,大小一般为4kb左右,主要存储一些比较小的信息,常用的例子有用户名和密码,且是不安全的: Session是 ...
- Application对象、Session对象、Cookie对象、Server对象初步认识
Application对象:记录应用程序参数的对象 用于共享应用程序级信息,即多个用户共享一个Application对象.在第一个用户请求ASP.NET文件时,将启动应用程序并创建Applicatio ...
- 初识 Asp.Net内置对象之Cookie对象
Cookie对象 Cookie对象用于保存客户端浏览器请求的服务器页面,也可用于存放非敏感性的用户信息,信息保存的时间可以根据用户的需要经行设置.并非所有的浏览器都支持Cookie,并非数据信息都是以 ...
- BOM 浏览器对象模型_不超过 4 KB 的 document.cookie 对象
注意: 客户端储存应该使用 Web storage API 和 IndexedDB,不推荐使用 Cookie document.cookie 对象 是服务器保存在浏览器的一小段文本信息 用于读写当前网 ...
随机推荐
- 代理(Proxy)模式简介
一.代理(Proxy)模式简介 代理模式是结构型模式. 代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用. 代理对象要继承于抽象主题,并控制原对象的引用 二.简单例子 抽象主题类 ...
- nl命令(转)
原文:http://www.cnblogs.com/peida/archive/2012/11/01/2749048.html nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件内容 ...
- Linux 下搭建流媒体服务器
http://blog.csdn.net/huangtaishuai/article/details/9836581 ----------------------------------------- ...
- PHPWIND和DISCUZ什么区别?
大家都知道,phpwind和discuz是两款用来做论坛的强大的php开源程序.客观的说,现在phpwind和discuz各有所长,要说他们哪个比较好,也是很难的事情,无忧主机小编在这里也不敢妄下结论 ...
- 解决win10锁屏后无法进入桌面
方法一: TAKEOWN /F "%SystemRoot%\System32\InputMethod\CHS\ChsIME.exe" icacls "%SystemRoo ...
- Best Time to Buy and Sell Stock I && II && III
题目1:Best Time to Buy and Sell Stock Say you have an array for which the ith element is the price of ...
- redission 分布式锁
https://my.oschina.net/haogrgr/blog/469439 分布式锁和Redisson实现 Aug 20, 2017 CONTENTS 概述 分布式锁特性 Redis实现 ...
- 网线/双绞线上各标识CAT, AWG, PR, UTP/STP/FTP/SFTP的含义
CAT5, CAT5e, CAT6 表示网线类别, 常见的有 CAT5, CAT5e, CAT6分别表示五类, 超五类, 六类网线 24AWG, 26AWG American Wire Gauge是美 ...
- Linux内核源代码分析方法
Linux内核源代码分析方法 一.内核源代码之我见 Linux内核代码的庞大令不少人"望而生畏",也正由于如此,使得人们对Linux的了解仅处于泛泛的层次.假设想透析Linux ...
- 深入PHP内核之函数和返回值
1.关于返回值,PHP内核中使用了大量的宏来实现,我们先看一个函数 PHP_FUNCTION 宏的定义(Zend/zend_API.h) #define PHP_FUNCTION ZEND_FUNC ...