【问题标题】:Cookie adding another entry instead of replacing existing valueCookie 添加另一个条目而不是替换现有值
【发布时间】:2012-07-18 22:25:35
【问题描述】:

我正在使用流行的 jquery cookie 插件通过 javascript 设置会话 cookie 值,如下所示:

function ChangeLoginUser(sel) {
    var selectedUser = sel.options[sel.selectedIndex].value;
    $.cookie("LoginUser", selectedUser);
    location.reload(true); //refresh
}

用户从站点全局下拉框选项中选择后调用此函数。

  • 更改 page1 上的值 - cookie 设置为 CookieName = Value1。
  • 转到第 2 页 - cookie 正确保存
  • 将下拉值更改为 value2 - Fiddler 现在显示两个具有相同名称的 cookie,两个值如下所示:
CookieName = value2
CookieName = value1

我不明白为什么会这样。我只需要保留一个同名的 cookie。新值应该替换旧值。

【问题讨论】:

    标签: asp.net-mvc-3 cookies session-cookies jquery-cookie


    【解决方案1】:

    好的。看起来问题出在cookie路径上。每个 URL 可以有一个单独的同名 cookie。解决方案是将路径设置为域范围,如下所示:

    $.cookie("LoginUser", selectedUser, { path: '/' });
    

    或者,如果您需要将范围缩小到只有您的应用程序,您可以这样做:

    $.cookie("LoginUser", selectedUser, { path: AppPath });
    

    AppPath 可以在共享布局的开头设置

    <script type="text/javascript">
        var AppPath = '@Url.Content("~/")'
    </script>
    

    【讨论】:

      猜你喜欢
      • 2016-06-02
      • 2012-08-21
      • 1970-01-01
      • 1970-01-01
      • 2018-12-07
      • 1970-01-01
      • 2021-03-18
      • 1970-01-01
      相关资源
      最近更新 更多