jCookies,一个功能强大的操作http cookie的jquery插件,他能够让你存储任何数据类型如:字符串,数组,对象等。它通过JavaScript存储Cookies,然后通过服务器端代码如:C# 和PHP 读取数据。在我做的一个项目当中,需要检测当前国家的IP是否允许用户访问这个网站,如果不允许访问,会弹出框让你填写用户信息,如果你点击关闭按钮,在刷新页面的话,这个框就再也不会弹出了,这时候就要用到cookie来判断用户信息了,

下面我将介绍一下演示使用jCookies如何存储数据,同时在服务器端如何检索数据存储。

创建COOKIES

使用jCookies创建cookie你必须通过两个属性来创建: name value

$.jCookies({
name : 'Listening To',
value : { album : 'The Go Round', artist : 'Inf', rating : 9, thumbs_up : true}
});

你可以存储任何类型的数据,默认的cookies过期时间是27天,你可以通过下面的属性来设置过期时间:seconds, minutes, hours, days.,当你设置过期时间的时候你必须输入一个有效的数字,否则会被忽略哦

$.jCookies({ name : 'User', value : { username : 'Bob' , level : 5 }, minutes : 60 });

检索cookie

你可以使用get属性来检索cookie

var listening_to = $.jCookies({ get : 'Listening To' });
// 返回结果: { album : 'The Go Round', artist : 'Inf', rating : 9, thumbs_up : true} var rutabaga = $.jCookies({ get : 'Rutabaga' }); // (cookie 没有被设置)
//返回结果: false

如果没有对应命名的cookie,或者cookie已经过期,或者当中包含错误的时候这时他都会返回false的状态,如果你想查看因为什么原因返回的错误,你可以设置一个error属性,代码如下

var rutabaga = $.jCookies({ get : 'Rutabaga', error : true });
/* response:
Error : {
arguments : undefined,
message : "Invalid base64 data",
stack : "—",
type : undefined
}
*/

删除COOKIES

你可以使用jcookies的erase属性来删除cookie

var erased_listening_to = $.jCookies({ erase : 'Listening To' });
// response: true var rutabaga = $.jCookies({ erase : 'Rutabaga' });
// response: false

如果这个cookie存在当他被删除的时候他会返回 true,如果cookie不存在他直接返回false;

服务器端操作COOKIES

服务器端处理jCookies创建的HTTP cookies非常简单,我们只需要使用Base64(base64_decode)解码cookie,然后再使用json对数据进行解码。

使用javascript设置cookie

$.jCookies({name:'user',value:{name:'brian',level:'awesome'}});
// response: true

使用PHP检索cookie

<?php print_r(json_decode(base64_decode($_COOKIE['user'], true))); ?>
/* response:
stdClass Object
(
[name] => brian
[level] => awesome
)
*/

使用c#检索cookie

Dictionary<string,object> user =
new JavaScriptSerializer().Deserialize<Dictionary<string,object>>
(Encoding.UTF8.GetString(
Convert.FromBase64String(Page.Request.Cookies["user"].Value)
)); Page.Response.Write("user : name = " + (string) user["name"]);

hide

使用JCOOKIES创建http cookie的更多相关文章

  1. JavaScript创建读取cookie代码示例【附:跨域cookie解决办法】

    使用JavaScript 原生存取cookie代码示例: var cookie = { set : function(name, value, expires, path, domain, secur ...

  2. 创建/删除Cookie数据

    //1.编写(创建 和 修改 一样) HttpCookie cookie = new HttpCookie("userName");cookie.Value = "顾志海 ...

  3. 浏览器中跨域创建cookie的问题

    当我们在www.a.com这个域下用ajax提交一个请求到www.b.com这个域的时候,默认情况下,浏览器是不允许的,因为违反了浏览器的同源策略.解决方案可以参考笔者的这篇博文:http://www ...

  4. Servlet课程0426(九)Servlet服务器端创建Cookie和客户端读取Cookie

    服务器端创建Cookie: Win7默认Cookie位置 C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Cookies Cookie ...

  5. JSP(4)—Cookie创建及简单案例(自动登录)

    Cookie的创建: 创建一个JSP页面,第一次访问时显示没有Cookie,正在创建,再次访问就会自动显示cookie的名称,并设置cookie过期时间 <% //在javaweb规范中使用Co ...

  6. C#创建cookie读写cookie

    一.创建cookie HttpCookie cookie = new HttpCookie("UserInfo");//创建多值cookie              cookie ...

  7. Cookie的创建与删除

    Cookie 为 Web 应用程序保存用户相关信息提供了一种有用的方法.例如,当用户访问站点时,可以利用 Cookie 保存用户首选项或其他信息,这样,当用户下次再访问站点时,应用程序就可以检索以前保 ...

  8. Jsp Cookie的创建与读取 标签: cookiejsp 2016-11-17 15:14 61人阅读 评论(0)

    Cookie.jsp <%@ page language="Java" import="java.util.*" pageEncoding="u ...

  9. js对secure的支持是没问题的,httponly是为限制js而产生的,当然httponly的cookie也不会被js创建

    function setCookie4(c_name,value,expiredays){ var cookieStr = ""; var exdate=new Date(); e ...

随机推荐

  1. vue-cli之webpack的proxyTable无效的解决方案

    最近遇到这个需要单页访问跨域后台的问题 可以按照如下设置: proxyTable: { '/list': { target: 'http://api.xxxxxxxx.com', pathRewrit ...

  2. Inno Setup 系列之安装、卸载前检测进程运行情况并关闭相应进程

    需求 最近用 Inno Setup 做一个exe,可是在安装之前要停止正在运行的相应进程或者在卸载之前要停止正在运行的相应进程,可是发现它自身的方法不能满足要求,最后经过度娘的耐心帮助下终于在网上找到 ...

  3. CF 449D 题解(状压+容斥)

    状压妙啊... 本题的主体思路:状压+容斥原理(或状压+数位dp) 记g[i]表示按位与后结果所有位上至少有i个1的方案数 那么根据容斥原理,ans=g[0]-g[1]+g[2]-g[3]+g[4]. ...

  4. pytest十四:doctest 框架

    doctest 从字面意思上看,那就是文档测试.doctest 是 python里面自带的一个模块,它实际上是单元测试的一种. 官方解释:doctest 模块会搜索那些看起来像交互式会话的 Pytho ...

  5. python 全栈开发,Day134(爬虫系列之第1章-requests模块)

    一.爬虫系列之第1章-requests模块 爬虫简介 概述 近年来,随着网络应用的逐渐扩展和深入,如何高效的获取网上数据成为了无数公司和个人的追求,在大数据时代,谁掌握了更多的数据,谁就可以获得更高的 ...

  6. python学习之基本数据类型

    python的基本数据类型有数字.字符串.列表.字典.元祖.布尔值 一.数字 1.1.字符转换为数字 实例: a=" b=int(a) print(b+) 运行结果: 可以用type查看数据 ...

  7. python dictionay(字典 )基本用法

    dict(dictionary)是一系列无序对象的集合,由键-值对构成,通过读取键来取得对应的值,具有可变,无序,异构,可嵌套的属性. dict初始化1.直接采用字典格式 2.利用dict(),[注] ...

  8. 029.Docker Compose部署Zabbix实战

    一 前期规划 1.1 Zabbix架构图 1.2 其他规划 组件 类型 版本 备注 Zabbix Web zabbix-web-apache-mysql镜像 wordpress:latest 也可采用 ...

  9. C++雾中风景11:厘清C++类型转换(static_cast,dynamic_cast,reinterpret_cast,const_cast)

    C++是一门弱类型的语言,提供了许多复杂和灵巧类型转换的方式.笔者之前写的Python与Go都是强类型的语言,对这种弱类型的设计实在是接受无力啊~~ ( 生活所迫,工作还得写C++啊~~)C++语言提 ...

  10. 机器学习 Logistic 回归

    Logistic regression 适用于二分分类的算法,用于估计某事物的可能性. logistic分布表达式 $ F(x) = P(X<=x)=\frac{1}{1+e^{\frac{-( ...