我需要创建和删除Cookie。
问题是我可以创建,然后删除cookie,但在之前删除的cookie后,我无法创建新的cookie。为什么呢?
清除浏览器的缓存后,它再次工作。
创建cookie并重定向到测试页面:
Caused by: java.lang.ClassCastException: org.terracotta.ehcachedx.monitor.probe.ProbePeerListenerFactory cannot be cast to net.sf.ehcache.distribution.CacheManagerPeerListenerFactory
at net.sf.ehcache.config.ConfigurationHelper.createCachePeerListeners(ConfigurationHelper.java:163)
at net.sf.ehcache.CacheManager.configure(CacheManager.java:786)
at net.sf.ehcache.CacheManager.doInit(CacheManager.java:471)
at net.sf.ehcache.CacheManager.init(CacheManager.java:395)
... 79 more
删除cookie并重定向到测试页面:
<?php
$cookie_name = 'name';
$cookie_time = 2000000000;
$cookie_path = '/';
$cookie_value = uniqid();
setcookie($cookie_name, $cookie_value, $cookie_time, $cookie_path);
echo '<script> window.location.assign("test.php"); </script>';
?>
测试页面中只有<?php
$cookie_name = 'name';
$cookie_path = '/';
setcookie($cookie_name, '', time() - 3600, $cookie_path);
echo '<script> window.location.assign("test.php"); </script>';
?>
。
我在这里做错了什么? Cookie的名称是一个问题吗?是浏览器限制吗?
我需要能够在需要时创建和删除cookie。
我尝试使用此代码来避免缓存:
print_r($_COOKIE);
答案 0 :(得分:1)
问题可能是浏览器正在缓存页面请求,而与服务器告诉它的内容无关。
有一个简单的方法来解决这个问题。将更改变量添加到查询字符串将使页面请求每次都是唯一的。这也会强制浏览器重新加载页面,即使在缓存时也是如此。
例如,将以下内容添加到地址栏/页面请求中:
?abc=123
每次更改数值。或者,您甚至可以使用timestamp
,如此:
?<timestamp>
这将强制符合标准的浏览器每次都获取页面。