我显然看到,在特定情况下,在执行SetCookie()
函数之后,当我重新加载页面(或重新进入该页面)时,除非按{{1} }(已清除缓存的请求)。
您是否遇到过这种情况(这种情况仅发生在文件的CTRL+F5
版本上,而不发生在http
上)。
这没有帮助:
https
我应该怎么做才能使cookie在下一页输入时阅读?
答案 0 :(得分:1)
Cookie出错时通常很难调试。您所描述的内容似乎与缓存有关,但听起来很奇怪。
这是您可以尝试执行的操作,以了解问题所在。
www.example.com
的域应为.example.com
或www.example.com
。路径的想法是相同的(如果您访问www.exampl.com/path
,则路径需要为/
或/path
secure
属性。一些基本的检查内容。
假设您有cookie行:
setcookie('name', 'value', time()+10000,'/test','.example.com');
打开Chrome(或您喜欢的浏览器)开发人员控制台,并在发出请求时检查所设置的cookie。应该遵循以下原则:
持续时间不得为0,其余时间应正确。
当您发出下一个请求时,也应发送cookie。
这应该是“请求cookie”中的一项。
如果已接收到cookie,但未将其发送到服务器,则可能值得打开浏览器设置,并手动找到存储的cookie,以获取有关发生这种情况的任何提示。在chrome中,它将在chrome://settings/siteData
如果您仍然没有发现任何错误,请检查是否正在运行任何中间缓存层,这将覆盖您设置的No-Cache
标头。
答案 1 :(得分:1)
我发现启用了Nginx缓存,这导致浏览器无法从服务器撤回执行。
我已通过在网址中包含str.__repr__
字符串,使该页面调用的缓存无效来解决此问题。