2012-07-19 29 views
1

我使用流行的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被正確地堅持
  • 更改下拉值值2 - 菲德勒現在顯示兩個cookie由同一個名字,像這樣兩個值:
CookieName = value2 
CookieName = value1 

我不明白爲什麼會發生這種情況。我只需要保留一個這個名字的cookie。新的價值應該取代舊的價值。

回答

1

好的。看起來問題出在cookie路徑上。每個URL都可以有一個具有相同名稱的單獨的Cookie。解決的辦法是設置的路徑是域範圍內是這樣的:

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

,或者,如果你需要將它縮小到只有您的應用程序,你可以做這樣的:

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

其中APPPATH可以在您的共享佈局開始處設置

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