Файл cookie, добавляющий другую запись вместо замены существующего значения

Я использую популярный плагин jquery cookie, чтобы установить значение cookie сеанса с помощью javascript, например:

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

Эта функция вызывается после того, как пользователь выбирает параметр из глобального раскрывающегося списка сайта.

  • Измените значение на странице1 - для файла cookie установлено CookieName = Value1.
  • Перейти на страницу 2 - файл cookie сохраняется правильно
  • Измените значение раскрывающегося списка на значение2. Теперь Fiddler показывает два файла cookie с одинаковым именем и обоими значениями, как показано ниже:
CookieName = value2
CookieName = value1

Я не понимаю, почему это происходит. Мне нужно сохранить только один файл cookie с этим именем. Новое значение должно заменить старое.


person Alex    schedule 19.07.2012    source источник


Ответы (1)


Ok. Похоже, проблема была с путем к куки. Каждый URL-адрес может иметь отдельный файл cookie с тем же именем. Решение состоит в том, чтобы установить путь для всего домена следующим образом:

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

или, если вам нужно сузить его только до вашего приложения, вы можете сделать это следующим образом:

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

где AppPath может быть установлен в начале вашего общего макета

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