Chrome не удаляет файлы cookie сеанса

Я пытаюсь установить cookie сеанса в javascript следующим образом:

document.cookie = 'name=alex; path=/'

но Chrome не удаляет его, даже если я выхожу из браузера и запускаю его снова.

Я проверил Firefox и Opera, и оба работают по назначению - они удаляют cookie сеанса при выходе из браузера.

Chrome просто игнорирует правила истечения срока действия?

Я проверил несколько ОС и узнал, что cookie сеанса удаляется в Chrome в Windows XP и Ubuntu, но не в Mac OSX Лев.

11 ответов



У меня просто была такая же проблема с cookie, который был установлен, чтобы истечь на "просмотр сеанса end".

к сожалению, это не так, я немного поиграл с настройками браузера.

оказалось, что функция, которая запоминает открытые вкладки, когда браузер закрыт был корень проблемы. (Функция называется "при запуске" - "продолжить, где я остановился". По крайней мере, в текущей версии Chrome).

Это также происходит с Opera и Браузер firefox.


У меня просто была эта проблема. Я заметил, что даже после закрытия браузера у меня было много процессов chrome. Оказывается, тезисы были из моего расширения chrome.

В разделе Дополнительные настройки я снял флажок 'Continue running background apps when Google Chrome is closed' и мои сеансовые cookies начали работать так, как должны.

все еще боль сзади для всех нас разработчиков, которые кодировали ожидая, что куки-файлы сеанса будут очищены, когда пользователь закончит просмотр


Это может быть потому, что Chrome по-прежнему работает в фоновом режиме после закрытия браузера. Попробуйте отключить эту функцию, выполнив следующие действия:

  1. открыть chrome: / / настройки/
  2. нажать "Показать дополнительные настройки ..."
  3. перейдите в раздел " Система "и отключите"продолжить работу фоновых приложений, когда Google Chrome закрыт". Это заставит Chrome полностью закрыть, а затем удалить файлы cookie сеанса.

однако, я думаю Chrome должен проверять и удалять файлы cookie предыдущей сессии при запуске вместо закрытия.


Я должен был оба, непроверенный, под расширенными настройками Chrome:

  • 'продолжить работу фоновых приложений, когда Google Chrome закрыт'
  • "продолжить, где я остановился","при запуске"

простой альтернативой является использование нового sessionStorage


У меня была такая же проблема с "Документ.cookie " в Windows 8.1 единственный способ, которым Chrome удаляет файл cookie, - это закрыть его из Диспетчера задач (не очень причудливый способ), поэтому я решил управлять файлами cookie с бэкэнда или использовать что-то вроде "JS-cookie".


вы пытались удалить расширение hangouts в Google Chrome? потому что это заставляет chrome продолжать работать, даже если вы закрываете все окна.

Я также столкнулся с проблемой, но теперь она решена.


решением было бы использовать sessionStorage, FYI:https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage


Если вы установите домен для файла cookie сеанса php, браузеры, похоже, удерживают его в течение 30 секунд или около того. Кажется, не имеет значения, закрываете ли вы вкладку или окно браузера.

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

ini_set("session.cookie_domain", 'www.domain.com');

единственный способ избавиться от висящего файла cookie-удалить строку кода, которая задает домен файла cookie сеанса. Также следите за session_set_cookie_params() функция. Точечный префикс домена, похоже,не имеет никакого отношения к проблеме.

это может быть ошибка php, так как php отправляет файл cookie сеанса (т. е. PHPSESSID=b855ed53d007a42a1d0d798d958e42c9) в заголовке после того, как сеанс был уничтожен. Или это может быть проблема распространения сервера, но я так не думаю, так как мой тест был на частных серверах.


У Google chrome есть проблема, если вы неправильно установили и отключили cookie. Это php код. Думал, это даст тебе идею.

установить cookie

setcookie('userLoggedIn', 1, 0, PATH);

неправильный путь и не будет работать (путь уведомления отсутствует)

setcookie('userLoggedIn', 0, time()-3600);

правильный способ исправления проблемы в google chrome

setcookie('userLoggedIn', 0, time()-3600, PATH);