Set-Cookie кешируется даже с F5?(если я не нажму CTRL + F5) - PullRequest
0 голосов
/ 24 сентября 2018

Я, очевидно, вижу, что в определенных случаях после функции SetCookie(), когда я перезагружаю страницу (или повторно захожу на эту страницу), я не вижу установленных файлов cookie, если только я не нажму CTRL+F5 (чтоочищенный кеш запрос).Вы когда-нибудь встречали такой случай (это происходит только в http версии файла, а не в https).

это не помогло:

header('Expires: Sun, 01 Jan 2014 00:00:00 GMT');
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

Что мне следуетделать, чтобы куки читались на следующей странице - введите?

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Я обнаружил, что было включено какое-то кэширование Nginx, в результате чего браузер не вызывал выполнение с сервера.Я исправил это, включив в URL строку random(), и очистил кеш для этого вызова страницы.

0 голосов
/ 24 сентября 2018

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

Вот что вы можете попробовать сделать, чтобы понять, что не так.

  1. Убедитесь, что вы устанавливаете куки в правильном домене и пути.Если ваша страница, например, на www.example.com, домен должен быть .example.com или www.example.com.Идея та же для пути (если вы обращаетесь к www.exampl.com/path, то путь должен быть либо /, либо /path
  2. . Если вам нужен файл cookie, доступный на http, вам не следует устанавливатьАтрибут secure.
  3. Убедитесь, что срок действия файла cookie еще не истек, если он установлен, браузеры, вероятно, проигнорируют его, если он установлен.

Несколько основных вещей, которые нужно проверить.

Предположим, что у вас есть строка cookie:

setcookie('name', 'value', time()+10000,'/test','.example.com');

Откройте консоль разработчика Chrome (или вашего любимого браузера) и, когда вы делаете запрос, проверяете устанавливаемые файлы cookie.строки:

enter image description here

Продолжительность не должна быть 0, а остальные должны быть правильными.

Когда вы делаете следующий запрос,Также необходимо отправить файл cookie.

enter image description here

Это должна быть запись в «Запросе cookie».

Если файл cookieполучил, но не отправил на сервер, возможно, стоит открыть настройки браузеранайти вручную сохраненные куки-файлы, чтобы понять, почему это происходит.В chrome это будет в chrome://settings/siteData

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...