每当调用ajax页面时,我运行:
setcookie($filtersCookie, $cookieVal, time() + 86400); // 1 day
,当页面刷新时,我使用以下代码查看是否保存了任何过去的过滤器:
if(isset($_COOKIE[$filtersCookie])) {
,但cookie在页面刷新后不存在。你知道为什么会这样吗?
setcookie在ajax调用的浏览器输出之前使用。
我不认为浏览器会拦截cookie当ajax调用。
如果Ajax脚本驻留在调用页面以外的另一个目录中,那么还应该使用path
参数
setcookie($filtersCookie, $cookieVal, time() + 86400, "/"); // 1 day
默认情况下,cookie将从cookie设置的目录中可用,使用"/"将使其对所有路径可用。