PHP:在AJAX请求的开头使用setcookie不会保存post-request cookie


PHP: using setcookie at the beginning of AJAX request does not save cookie post-request?

每当调用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设置的目录中可用,使用"/"将使其对所有路径可用。