javascript - 在 javascript 中访问 c​​ookie

标签 javascript cookies

Possible Duplicate:
Read cookie in javascript

我写了以下函数。我需要使用 $COOKIE['cookieName'] 格式访问 cookie。

var $COOKIE = (function(){
    if(!document.cookie)
        return {};
    else{
        var c = document.cookie.split(';');
        var len = c.length;

        var ret = {};
        var temp ;

        for( var i = 0 ; i < len ; ++i )
        {
            temp = c[i].split('=');

            ret[temp[0]] = temp[1];
        }

        return ret;
    }
})();

我设置了两个 cookie a1= 2 , a2 = 9。$COOKIE['a1'] 给了我 2,但 $COOKIE['a2'] 是未定义。

为什么会这样?我的逻辑/代码有什么问题?

最佳答案

问题是你用“;”分割但是 cookie 中的值由“;”(分号 + 空格)分隔。因此,您的第二个值将是 "a2": 9

要修复它,只需在分隔符中添加一个空格或使用此代码段来实现更以数据为中心的方法;)

var $COOKIE = (document.cookie || '').split(/;\s*/).reduce(function(re, c) {
  var tmp = c.match(/([^=]+)=(.*)/);
  if (tmp) re[tmp[1]] = unescape(tmp[2]);
  return re;
}, {});

关于javascript - 在 javascript 中访问 c​​ookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9265498/

相关文章:

javascript - 使用纯 Javascript 或 Jquery 处理向外部网站请求时发生的 404 错误

c# - 更新的 Cookie 不适用于 Response.Redirect

javascript - JS : calculate savings based on last element of a list

php - 如何根据 php 标题的长度调整 margin-top 属性?

javascript - 如何使用 '=' 定义 Angular 范围的函数?

javascript - 如何修复 jquery 中的 ajax xhr 错误

session - MVC5 OWIN 身份验证持久性在本地工作,但发布后很快就会超时

session - Cookie 过期时间与服务器的 Session 过期时间有关?

flash - 如何在我的 Flash 应用程序中制作 cookie?

javascript - 将 cookie 写入 ashx 文件