微信的一些页面会去获取授权,然后在回调到页面,但是这样的话通过url传递的参数有可能丢失掉,我采用存储cookie的方式来传值

建一个CookieHelper.js文件

function CookieHelper() {

}
//删除cookie
CookieHelper.prototype.deleteCookie = function (name) {
var date = new Date();
date.setTime(date.getTime() - 10000);
document.cookie = name + "=v; expires=" + date.toGMTString() + ";path=/";
} //设置cookie
CookieHelper.prototype.setCookie = function (name, value) {
//设置之前先删除
this.deleteCookie(name);
//获取当前时间
var date = new Date();
var expiresDays = 10;
//将date设置为10天以后的时间
date.setTime(date.getTime() + expiresDays * 24 * 3600 * 1000);
//cookie设置为10天后过期
document.cookie = name + "=" + value + "; expires=" + date.toGMTString() + ";path=/";
document.cookie
} //获取某一cookie key=value
CookieHelper.prototype.getCookie = function (name) {
var strCookie = document.cookie;
var arrCookie = strCookie.split("; ");
for (var i = 0; i < arrCookie.length; i++) {
var arr = arrCookie[i].split("=");
if (arr[0] == name) {
return arr[1];
}
}
return "";
}
//获取cookie 类型 key=id=123&name=qwe&pwd=uio
CookieHelper.prototype.getCookies = function (name) {
var strCookie = document.cookie;
var arrCookie = strCookie.split("; ");
for (var i = 0; i < arrCookie.length; i++) {
var arr = arrCookie[i].split("=");
if (arr[0] == name) {
return arrCookie[i].substring(arrCookie[i].indexOf("=") + 1)
}
}
return "";
}
//获取所有cookie CookieHelper.prototype.getAllCookie = function (name) {
var strCookie = document.cookie;
var arrCookie = strCookie.split("; ");
if (arrcookie.length > 0) {
return arrCookie;
} else {
return "";
}
}

页面调用<script type="text/javascript" src="CookieHelper"></script>

在页面的js中调用上面封装的方法

//
function booking(id, num) {
if (parseInt(num == 0)) {
return false;
} else {
var startDate = document.getElementById("startDate").value;
var endDate = document.getElementById("endDate").value;
//声明封装方法存储Cookie
var cookiehelp = new CookieHelper();
var name="Bookingvalue";
var value = "UnitID=" + id + "&startDate=" + startDate + "&endDate=" + endDate;
//调用存储Cookie方法
cookiehelp.setCookie(name, value); var startDate = document.getElementById("startDate").value;
var endDate = document.getElementById("endDate").value;
window.location.href = "Booking.aspx?UnitID=" + id + "&startDate=" + startDate + "&endDate=" + endDate;
}
}

这样就完成了存储cookie。

这里存储的cookie是多参数的,调用时C#采用下图方式:

HttpCookie Cookie = System.Web.HttpContext.Current.Request.Cookies["Bookingvalue"];
if (Cookie != null)
{
unitID = Convert.ToInt32(Cookie["UnitID"]);
}
if (unitID > )
{ if (!string.IsNullOrEmpty(HttpContext.Current.Request.Cookies["Bookingvalue"]["startDate"]))
{
if (Convert.ToDateTime(HttpContext.Current.Request.Cookies["Bookingvalue"]["startDate"]) >= DateTime.Now)
{
startDate = HttpContext.Current.Request.Cookies["Bookingvalue"]["startDate"];
}
else
{ }
}
if (!string.IsNullOrEmpty(HttpContext.Current.Request.Cookies["Bookingvalue"]["endDate"]))
{
if (Convert.ToDateTime(HttpContext.Current.Request.Cookies["Bookingvalue"]["startDate"]) >= Convert.ToDateTime(HttpContext.Current.Request.Cookies["Bookingvalue"]["endDate"]))
{
endDate = Convert.ToDateTime(startDate).AddDays().ToShortDateString();
}
else
{
endDate = HttpContext.Current.Request.Cookies["Bookingvalue"]["endDate"];
}
}
       }

很久很久之后,erp中在后台存储了个cookie,然后我激动的使用js去删除这个cookie,删除失败,我很困惑,究竟是方法不行还是人不行,最后检查时发现下图:

这个后台存的是session我居然天真的以为后台的方法名字叫什么就是什么功能,坑啊。

CookieHelper JS封装Cookie 存取方法的更多相关文章

  1. JS封装cookie操作函数实例(设置、读取、删除)

    本文实例讲述了JS封装cookie操作函数.分享给大家供大家参考,具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ...

  2. 原生js封装cookie获取、设置及删除

    使用cookie(key,value,options) 参数key,value,options(可选) function cookie(key,value,options){ if(typeof va ...

  3. js封装Cookie操作 js 获取cookie js 设置cookie js 删除cookie

    每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code var CookieUtil = { // 设置cookie set : functi ...

  4. JS封装Cookie

    /* @黑眼诗人 <www.farwish.com> */<script> //设置cookie: cookie名,cookie值,天数 function setCookie( ...

  5. js封装Cookie操作

    var CookieUtil = { // 设置cookie set : function (name, value, expires, domain, path, secure) { var coo ...

  6. 原生JS封装Ajax插件(同域&&jsonp跨域)

    抛出一个问题,其实所谓的熟悉原生JS,怎样的程度才是熟悉呢? 最近都在做原生JS熟悉的练习... 用原生Js封装了一个Ajax插件,引入一般的项目,传传数据,感觉还是可行的...简单说说思路,如有不正 ...

  7. js获取cookie

    js获取cookie 之前用jQuery.cookie来获取cookie,虽然简单,但是项目上又多引用了一个插件,总觉得不太好,下面是我封装的js原生获取cookie的函数. function get ...

  8. JS操作cookie以及本地存储(sessionStorage 和 localStorage )

    JS操作cookie cookie的操作用两种方式 1.substring //创建cookie function setCookie(name,value,expires,path,domain,s ...

  9. jquery.cookie 使用文档,$.cookie() 文档教程, js 操作 cookie 教程文档。

    jquery.cookie 使用文档,$.cookie() 文档教程, js 操作 cookie 教程文档. jquery.cookie中的操作: jquery.cookie.js是一个基于jquer ...

随机推荐

  1. hdu 5268 ZYB loves Score 水题

    ZYB loves Score Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?p ...

  2. Docker:使用Ambassador进行跨主机间容器通信

    转载请注明出处:点我 由于Docker自身的网络的原因,想要在多主机间的容器之间进行通信是比较麻烦的事情.可以利用Ambassador容器来实现这一功能. 基本原理: 利用Ambassador来实现主 ...

  3. 关于对defer的理解.

    代码 <script defer> function init(){ document.getElementById("div").innerHTML="OK ...

  4. 柯南君 :Oracle 分区技术 之 怎样支撑大数据操作?

    前段时间.看了罗女士( 资深技术顾问 - Oracle 中国 顾问咨询部)关于<大批量数据处理技术的演讲>视频.感觉受益良多,结合多年的知识积累,柯南君给大家分享一下: 交流内容: 一.O ...

  5. Eclipse启动Tomcat时,45秒超时解决方案

    在Eclipse中启动Tomcatserver时,常常因为系统初始化项目多,导致出现45秒超时的Tomcatserver启动错误,出现以下的错误. 曾经我们一般通过找到XML配置文件,将相应Timeo ...

  6. IOS触摸事件和手势识别

    IOS触摸事件和手势识别 目录 概述 触摸事件 手势识别 概述 为了实现一些新的需求,我们常常需要给IOS添加触摸事件和手势识别 触摸事件 触摸事件的四种方法 -(void)touchesBegan: ...

  7. 剑指 offer set 3 旋转数组的最小数字

    总结 1. 没有重复元素的旋转数组可用 logn 时间内求出结果. 解法有两个步骤, 先是求出发生旋转的点(以 array[0] 为支点求得), 然后用正常的二分查找给出结果 2. 有重复元素元素的旋 ...

  8. 【源码】基于SQLite实现CMS论坛(BBS)----附件SQLite可视化界面客户端

              使用说明:管理员账号:admin  密码:523523523   一.  账号管理(登陆注册审核) 1.账号注册 url:/BBS/Account/pregister.aspx 2 ...

  9. Cyclic Nacklace

    Problem Description CC always becomes very depressed at the end of this month, he has checked his cr ...

  10. C. Mobile phones

    Suppose that the fourth generation mobile phone base stations in the Tampere area operate as follows ...