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

建一个CookieHelper.js文件

  1. function CookieHelper() {
  2.  
  3. }
  4. //删除cookie
  5. CookieHelper.prototype.deleteCookie = function (name) {
  6. var date = new Date();
  7. date.setTime(date.getTime() - 10000);
  8. document.cookie = name + "=v; expires=" + date.toGMTString() + ";path=/";
  9. }
  10.  
  11. //设置cookie
  12. CookieHelper.prototype.setCookie = function (name, value) {
  13. //设置之前先删除
  14. this.deleteCookie(name);
  15. //获取当前时间
  16. var date = new Date();
  17. var expiresDays = 10;
  18. //将date设置为10天以后的时间
  19. date.setTime(date.getTime() + expiresDays * 24 * 3600 * 1000);
  20. //cookie设置为10天后过期
  21. document.cookie = name + "=" + value + "; expires=" + date.toGMTString() + ";path=/";
  22. document.cookie
  23. }
  24.  
  25. //获取某一cookie key=value
  26. CookieHelper.prototype.getCookie = function (name) {
  27. var strCookie = document.cookie;
  28. var arrCookie = strCookie.split("; ");
  29. for (var i = 0; i < arrCookie.length; i++) {
  30. var arr = arrCookie[i].split("=");
  31. if (arr[0] == name) {
  32. return arr[1];
  33. }
  34. }
  35. return "";
  36. }
  37. //获取cookie 类型 key=id=123&name=qwe&pwd=uio
  38. CookieHelper.prototype.getCookies = function (name) {
  39. var strCookie = document.cookie;
  40. var arrCookie = strCookie.split("; ");
  41. for (var i = 0; i < arrCookie.length; i++) {
  42. var arr = arrCookie[i].split("=");
  43. if (arr[0] == name) {
  44. return arrCookie[i].substring(arrCookie[i].indexOf("=") + 1)
  45. }
  46. }
  47. return "";
  48. }
  49. //获取所有cookie
  50.  
  51. CookieHelper.prototype.getAllCookie = function (name) {
  52. var strCookie = document.cookie;
  53. var arrCookie = strCookie.split("; ");
  54. if (arrcookie.length > 0) {
  55. return arrCookie;
  56. } else {
  57. return "";
  58. }
  59. }

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

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

  1. //
  2. function booking(id, num) {
  3. if (parseInt(num == 0)) {
  4. return false;
  5. } else {
  6. var startDate = document.getElementById("startDate").value;
  7. var endDate = document.getElementById("endDate").value;
  8. //声明封装方法存储Cookie
  9. var cookiehelp = new CookieHelper();
  10. var name="Bookingvalue";
  11. var value = "UnitID=" + id + "&startDate=" + startDate + "&endDate=" + endDate;
  12. //调用存储Cookie方法
  13. cookiehelp.setCookie(name, value);
  14.  
  15. var startDate = document.getElementById("startDate").value;
  16. var endDate = document.getElementById("endDate").value;
  17. window.location.href = "Booking.aspx?UnitID=" + id + "&startDate=" + startDate + "&endDate=" + endDate;
  18. }
  19. }

这样就完成了存储cookie。

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

  1. HttpCookie Cookie = System.Web.HttpContext.Current.Request.Cookies["Bookingvalue"];
  2. if (Cookie != null)
  3. {
  4. unitID = Convert.ToInt32(Cookie["UnitID"]);
  5. }
  6. if (unitID > )
  7. {
  8.  
  9. if (!string.IsNullOrEmpty(HttpContext.Current.Request.Cookies["Bookingvalue"]["startDate"]))
  10. {
  11. if (Convert.ToDateTime(HttpContext.Current.Request.Cookies["Bookingvalue"]["startDate"]) >= DateTime.Now)
  12. {
  13. startDate = HttpContext.Current.Request.Cookies["Bookingvalue"]["startDate"];
  14. }
  15. else
  16. { }
  17. }
  18. if (!string.IsNullOrEmpty(HttpContext.Current.Request.Cookies["Bookingvalue"]["endDate"]))
  19. {
  20. if (Convert.ToDateTime(HttpContext.Current.Request.Cookies["Bookingvalue"]["startDate"]) >= Convert.ToDateTime(HttpContext.Current.Request.Cookies["Bookingvalue"]["endDate"]))
  21. {
  22. endDate = Convert.ToDateTime(startDate).AddDays().ToShortDateString();
  23. }
  24. else
  25. {
  26. endDate = HttpContext.Current.Request.Cookies["Bookingvalue"]["endDate"];
  27. }
  28. }
  29.        }

很久很久之后,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. C#生成软件注册码

    开发软件时,当用到商业用途时,注册码与激活码就显得很重要了.现在的软件破解技术实在在强了,各种国内外大型软件都有注册机制,但同时也不断地被破解.下面发的只是一个常用版本,发出源码被破就更容易了,但我们 ...

  2. 分享一组Rpg Marker人物行走,游戏素材图片,共20张图片

    分享一组Rpg Marker人物行走,游戏素材图片,共20张图片 上面的下载地址链接是图片,无法直接复制哦!下载请直接点击: 游戏素材下载  或者复制以下链接:http://***/view/13.h ...

  3. Dribbo

    https://github.com/ikew0ng/Dribbo https://github.com/eltld/Dribbo

  4. IOS UIwebview 背景色调整

    自定义webview背景色  重点是把webview弄成透明的 然后把self.view的背景调色即可 UIWebview 背景透明处理 让 UIWebView 背景透明需要以下设置 web_abou ...

  5. 使用app loader上传iOS应用

    正如上篇文章中提到的,因为一些原因我尝试通过app loader打包上传应用到appStore  其实这个使用还是挺简单 的 首先要知道怎么打开loader 打开方式有两种  一种是直接打开loade ...

  6. 精通CSS高级Web标准解决方案(1-2 层叠与特殊性)

     层叠与特殊性 选择器的特殊性分成四个等级,a.b.c . d 如果样式是行内样式,那么a=1 b=ID选择器的总数 c=类.伪类.属性选择器的总数 d=标签选择器与伪元素选择器数量 例如:style ...

  7. Bash中的位置参数和特殊参数

    #Bash中的位置参数和特殊参数 #Bash中的位置参数是由0以外的一个或多个数字表示的参数.#位置参数是当Shell或Shell函数被引用时由Shell或Shell函数的参数赋值,并且可以使用Bas ...

  8. POJ 2492 A Bug's Life (并查集)

    A Bug's Life Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 30130   Accepted: 9869 De ...

  9. codeforces 675E E. Trains and Statistic(线段树+dp)

    题目链接: E. Trains and Statistic time limit per test 2 seconds memory limit per test 256 megabytes inpu ...

  10. sgu 185 最短路建网络流

    题目:给出一个图,从图中找出两条最短路,使得边不重复. 分析:既然是最短路,那么,两条路径上的所有节点的入边(s,x).出边(x,e)必定是最优的,即 dis[x] = dis[s]+edge_dis ...