我一定错过了一些关于cookie的基本知识.在本地主机上,当我设置在服务器端的cookie,并明确指定域为localhost(或.localhost).某些浏览器似乎没有接受cookie.
Firefox 3.5:我在Firebug中检查了HTTP请求.我看到的是:
Set-Cookie:
name=value;
domain=localhost;
expires=Thu, 16-Jul-2009 21:25:05 GMT;
path=/
Run Code Online (Sandbox Code Playgroud)
或者(当我将域设置为.localhost时):
Set-Cookie:
name=value;
domain=.localhost;
expires=Thu, 16-Jul-2009 21:25:05 GMT;
path=/
Run Code Online (Sandbox Code Playgroud)
在任何一种情况下,都不会存储cookie.
IE8:我没有使用任何额外的工具,但cookie似乎也没有存储,因为它不会在后续请求中发回.
Opera 9.64: localhost和.localhost都工作,但是当我检查Preferences中的cookie列表时,域名设置为localhost.local,即使它列在localhost下(在列表分组中).
Safari 4: localhost和.localhost都可以工作,但它们在Preferences中始终列为.localhost.另一方面,没有显式域的cookie,它显示为localhost(无点).
localhost有什么问题?由于存在这么多的不一致,必须有一些涉及localhost的特殊规则.另外,我不完全清楚为什么域名必须以点为前缀?RFC 2109明确声明:
Domain属性的值不包含嵌入点或不以点开头.
为什么?该文件表明它必须对安全做些什么.我不得不承认我没有阅读整个规范(稍后可能会这样做),但听起来有点奇怪.基于此,在localhost上设置cookie是不可能的.
我正在尝试使用jQuery Cookie设置cookie,以便为新访问者显示警报,当您单击"关闭"按钮时,它将设置cookie并阻止警报div显示.我还想让cookie在24小时后过期.
我已经玩了一些代码并让它工作,但是,我现在的方式,默认显示警报div,只有在你点击关闭时才隐藏.这很好,但是当cookie存在时,警报会在隐藏之前显示一瞬间.
我如何修改以下代码,以便我可以默认隐藏div,如果cookie不存在则会显示,但如果他们点击关闭按钮,它将生成一个cookie并隐藏警报24小时?
if ($.cookie('alert')) $('.alert-box').hide();
else {
$(".close").click(function() {
$( ".alert-box" ).slideUp( "slow", function() { });
$.cookie('alert', true);
});
}
Run Code Online (Sandbox Code Playgroud) 我想要一个简单的JavaScript代码,允许我在单击预定义的时间内隐藏某个div元素.为了提供更多信息,我在主页加载时会出现一个建议框.我想要的是当点击div关闭按钮时,它设置一个cookie以保持盒子div关闭24小时(1天).简单地说,当按下div关闭按钮时,盒子div被隐藏24小时.注意:我有一个javascript,允许关闭按钮关闭框,但它将加载每次刷新.