【问题标题】:jQuery cookie plugin creates same cookie instead of read itjQuery cookie 插件创建相同的 cookie 而不是读取它
【发布时间】:2013-08-19 20:39:42
【问题描述】:

我有这个:

// connect to MemberHub
function connect() {

    // get unique id cookie
    var uid = $.cookie('UniqueID', { path: '/' });

    member.server.connect(uid).done(function (result) {
        if (result.msg == 'success') {
            // notify user  
            $('#log').append($('<li>', { html: 'Connected to MemberHUB' }));
        }
    });
}

每次我尝试读取 cookie 时,它​​都会创建相同的 cookie 而不是读取它。

更新:这是我分配 cookie 的方式:

    public static HttpCookie Create(string name, string value, 
        DateTime expires, HttpContextBase httpContext)
    {
        var cookie = new HttpCookie(name)
        {
            Value = value,
            Expires = expires,
            Secure = true,
            HttpOnly = false,
            Path = "/"
        };

        httpContext.Response.Cookies.Add(cookie);
        return cookie;
    }

任何建议都会有所帮助。

【问题讨论】:

  • 去掉路径会不会出现同样的错误?
  • 是的,仍然得到两个同名的 cookie。

标签: c# jquery asp.net-mvc httpcookie jquery-cookie


【解决方案1】:

$.cookie 只有在没有向方法提供其他参数(但 cookie 的名称)时才具有读取权限[参见 the source]

如果您有兴趣阅读它,只需提供$.cookie('UniqueID') 并删除第二个参数。

作为仅供参考,path(和其他 cookie 属性)仅在分配值时相关,而不是在检索时相关。换句话说,您不需要提供path:'/' 来获取应用于该路径的cookie,document.cookie 应该本机执行该检查。

【讨论】:

  • 感谢您的回复,但是当我删除 Path 时,cookie 的值为空。
  • 你是如何分配它的?该值是第二个参数,叉子是第三个。
  • @SaberAmani:您已确认它是在客户端级别分配的?除了一开始没有任何东西可以访问之外,我看不出有什么理由不能访问它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-25
  • 2017-05-07
  • 2014-01-04
  • 1970-01-01
  • 2015-07-24
  • 2023-03-17
  • 2016-09-20
相关资源
最近更新 更多