代码之家  ›  专栏  ›  技术社区  ›  T.Todua Laurent W.

设置Cookie缓存,即使使用F5(除非我按CTRL+F5)

  •  -1
  • T.Todua Laurent W.  · 技术社区  · 6 年前

    SetCookie() 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");
    

    我应该怎么做才能让cookies在下一页被阅读?

    2 回复  |  直到 6 年前
        1
  •  1
  •   apokryfos    6 年前

    Cookie出错时通常很难调试。您所描述的内容似乎与缓存有关,但听起来很奇怪。

    1. 确保在正确的域和路径中设置cookie。如果您的页面位于 www.example.com 域应该是 .example.com www.example.com . 对于路径(如果您访问 www.exampl.com/path 那么这条路要么 / /path
    2. 如果您需要cookie在http上可用,那么不应该设置 secure 属性。
    3. 确保cookie在设置时没有过期,否则浏览器可能会忽略它。

    一些基本的检查。

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

    打开Chrome(或者你最喜欢的浏览器)开发者控制台,当你提出请求时,检查正在设置的cookies。应该有以下几点:

    enter image description here

    持续时间不能为0,其余时间应正确。

    enter image description here

    这应该是“请求cookies”中的一个条目。

    如果收到了cookie,但是没有发送到服务器,那么打开浏览器设置并手动查找存储的cookie可能是值得的,因为有任何关于为什么会发生这种情况的提示。在chrome中,这将在 chrome://settings/siteData

    No-Cache

        2
  •  1
  •   T.Todua Laurent W.    6 年前

    我发现在Nginx上启用了某种缓存,导致浏览器无法从服务器调用执行。 我已经通过包括 random()