У меня есть следующий код, чтобы установить, получить и удалить куки:Удаление куки в Javascript не работает последовательно
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. Это выглядит следующим образом:
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 удаляет штраф в других частях моего приложения. Другими словами, я могу установить cookie на «http: // someapp/pageA» и удалить его на «http: // someapp/pageA» с помощью этого кода. Однако выполнение этого же процесса на «http: // someapp/pageB» приводит к тому, что cookie не удаляется. Можно спросить, какая разница между страницами, но я почти думаю, так как у меня есть указатель, указывающий точную точку отказа, проще просто попытаться понять, почему происходит сбой. – Tony
моя точка: «вы можете установить cookie на« someapp/pageA »и удалить его на« someapp/pageA », но« someapp/pageA »не может сразу прочитать, что файл cookie удален, я стоял исправлен. –
ok, i я просто говорю, что someapp/pageA действительно замечает, что cookie был удален, не выходя из страницы. где someapp/pageB не – Tony