PHP:在AJAX请求开始时使用setcookie不保存cookie后请求?

时间:2011-07-15 05:46:19

标签: php cookies

每当调用ajax页面时,我都会运行:

setcookie($filtersCookie, $cookieVal, time() + 86400); // 1 day

当页面刷新时,我使用以下代码查看是否有任何过去的过滤器保存:

if(isset($_COOKIE[$filtersCookie])) {

但页面刷新后cookie永远不存在。关于为什么会发生这种情况的任何想法?

在ajax调用的任何浏览器输出之前使用setcookie。

2 个答案:

答案 0 :(得分:1)

我不认为浏览器会在ajax调用时拦截cookie。你可以像在javascript中设置cookie一样。

答案 1 :(得分:0)

如果您的Ajax脚本位于调用页面之外的另一个目录中,那么您还应该使用path参数

setcookie($filtersCookie, $cookieVal, time() + 86400, "/"); // 1 day

默认情况下,cookie可以从设置cookie的目录中获得,使用“/”将使其可用于所有路径。