Asp.net mvc 3 Cookie添加另一个条目而不是替换现有值
我使用流行的jquery cookie插件通过javascript设置会话cookie值,如下所示:Asp.net mvc 3 Cookie添加另一个条目而不是替换现有值,asp.net-mvc-3,cookies,session-cookies,jquery-cookie,Asp.net Mvc 3,Cookies,Session Cookies,Jquery Cookie,我使用流行的jquery cookie插件通过javascript设置会话cookie值,如下所示: function ChangeLoginUser(sel) { var selectedUser = sel.options[sel.selectedIndex].value; $.cookie("LoginUser", selectedUser); location.reload(true); //refresh } 用户从站点全局下拉框选项中选择后调用此函数 更改
function ChangeLoginUser(sel) {
var selectedUser = sel.options[sel.selectedIndex].value;
$.cookie("LoginUser", selectedUser);
location.reload(true); //refresh
}
用户从站点全局下拉框选项中选择后调用此函数
- 更改第1页上的值-cookie设置为CookieName=Value1李>
- 转到第2页-cookie正确持久化
- 将下拉值更改为value2-Fiddler现在显示两个同名cookie,两个值如下:
我不明白为什么会这样。我只需要保留一块这个名字的饼干。新值应替换旧值。正常。看起来问题出在cookie路径上。每个URL都可以有一个具有相同名称的单独cookie。解决方案是将路径设置为域范围,如下所示:
$.cookie("LoginUser", selectedUser, { path: '/' });
$.cookie("LoginUser", selectedUser, { path: AppPath });
或者,如果您需要将其缩小到仅适用于您的应用程序,您可以这样做:
$.cookie("LoginUser", selectedUser, { path: '/' });
$.cookie("LoginUser", selectedUser, { path: AppPath });
在共享布局的开头可以设置AppPath
<script type="text/javascript">
var AppPath = '@Url.Content("~/")'
</script>
var AppPath='@Url.Content(“~/”)
好的。看起来问题出在cookie路径上。每个URL都可以有一个具有相同名称的单独cookie。解决方案是将路径设置为域范围,如下所示:
$.cookie("LoginUser", selectedUser, { path: '/' });
$.cookie("LoginUser", selectedUser, { path: AppPath });
或者,如果您需要将其缩小到仅适用于您的应用程序,您可以这样做:
$.cookie("LoginUser", selectedUser, { path: '/' });
$.cookie("LoginUser", selectedUser, { path: AppPath });
在共享布局的开头可以设置AppPath
<script type="text/javascript">
var AppPath = '@Url.Content("~/")'
</script>
var AppPath='@Url.Content(“~/”)