我有以下代码来设置,获取和删除cookie:
function set_cookie( name, value, expires, path, domain, secure ) {
var today = new Date();
today.setTime( today.getTime() );
if ( expires ) {
expires = expires * 1000 * 60 * 60 * 24;
}
var expires_date = new Date( today.getTime() + (expires) );
document.cookie = name + "=" +escape( value ) +
( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
( ( path ) ? ";path=" + path : "" ) +
( ( domain ) ? ";domain=" + domain : "" ) +
( ( secure ) ? ";secure" : "" );
}
function get_cookie( name ) {
var start = document.cookie.indexOf( name + "=" );
var len = start + name.length + 1;
if ( ( !start ) &&
( name != document.cookie.substring( 0, name.length ) ) ) {
return null;
}
if ( start == -1 ) return null;
var end = document.cookie.indexOf( ";", len );
if ( end == -1 ) end = document.cookie.length;
return unescape( document.cookie.substring( len, end ) );
}
function delete_cookie(name) {
document.cookie = name + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
}
在我的程序中,我有一个称为活动消息的东西,并使用cookie来记住活动消息的路径和存在。当然,我有一个丢弃消息功能,将删除cookie。它看起来像这样:
function discard_message() {
alert('cookie = '+get_cookie('active_message'));
clear_active_message_cookie();
alert('should be null = '+get_cookie('active_message'));
update_message('Discard', false, false);
}
function clear_active_message_cookie(){
delete_cookie("active_message");
}
正如您所看到的,我已将警报放入以检查cookie在删除后是否可读。奇怪的是,在我的应用程序的一部分中,cookie成功删除,但丢弃我的应用程序的另一部分中的消息不起作用。第二个cookie警告打印cookie的值。我已经确认cookie的名称是相同的。
这几乎就像我删除cookie的请求被拒绝了。有谁知道在什么情况下这是可能的?
谢谢!
答案 0 :(得分:0)
我认为删除的Cookie只会在您离开当前页面后停用。
删除cookie后立即插入下面的代码;
location.href = “bringmeback.html”;
bringmeback.html (重定向到当前页面);
location.href="currentpage.html";
您可以使用此代码测试您的Cookie是否已完全删除。