每当调用ajax页面时,我都会运行:
setcookie($filtersCookie, $cookieVal, time() + 86400); // 1 day
当页面刷新时,我使用以下代码查看是否有任何过去的过滤器保存:
if(isset($_COOKIE[$filtersCookie])) {
但页面刷新后cookie永远不存在。关于为什么会发生这种情况的任何想法?
在ajax调用的任何浏览器输出之前使用setcookie。
答案 0 :(得分:1)
我不认为浏览器会在ajax调用时拦截cookie。你可以像在javascript中设置cookie一样。
答案 1 :(得分:0)
如果您的Ajax脚本位于调用页面之外的另一个目录中,那么您还应该使用path
参数
setcookie($filtersCookie, $cookieVal, time() + 86400, "/"); // 1 day
默认情况下,cookie可以从设置cookie的目录中获得,使用“/”将使其可用于所有路径。