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. ORACLE与SQLSERVER数据转换

    前言: 将SQLServer数据库中的表和数据全量导入到Oracle数据库,通过Microsoft SqlServer Management Studio工具,直接导入到oracle数据库,免去了生成 ...

  2. vue渲染时对象里面的对象的属性提示undefined,但渲染成功

    场景: 从后台请求的数据结构如下: 我的list是对象,而comment又是list里的对象,渲染成功了,却报如下错: 解决办法: 添加一个:v-if

  3. PLSQL developer 连接不上64位Oracle 解决办法

    在64位Windows7上安装Oracle后,用PLSQL developer去连接数据库出现报错: Could not load "……\bin\oci.dll" OCIDLL ...

  4. Nginx 下Thinkphp5伪静态

    server { listen 80; server_name all.bjed.com; root "F:\www\asdata"; location / { index ind ...

  5. python 全栈开发,Day30(第一次面向对象考试)

    月考题: python 全栈11期月考题 一 基础知识:(70分) 1.文件操作有哪些模式?请简述各模式的作用(2分) 2.详细说明tuple.list.dict的用法,以及它们的特点(3分) 3.解 ...

  6. 步步为营-30-AES加密与解密

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  7. day17--JQuery实例

        1.表格选择框--全选,反选,取消 <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  8. python全栈开发day43-javascript

    一.昨日内容回顾 1.绝对定位的盒子居中 left:50%: margin-left:负的盒子宽度的一半 2.固定位置 脱离标准文档流 作用:返回顶部,广告,滚动监听栏.固定导航栏(body{marg ...

  9. 日常推荐大神操作,如何再oracle中delete数据后恢复

    http://blog.csdn.net/wangdinghai365/article/details/8593869

  10. linux下设置php执行命令

    第一种方法: 打开用户根目录下的: vi ~/.bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bash ...