miałem ten sam problem z wersja jQuery 1.7.1 i jquery cookies wersji 1.4.1
To doprowadzało mnie do szaleństwa, więc postanowiłem zagłębić się w kod źródłowy i zorientowałem się, co jest nie tak.
Oto definicja $ .removeCookie
$.removeCookie = function (key, options) {
if ($.cookie(key) === undefined) { // this line is the problem
return false;
}
// Must not alter options, thus extending a fresh object...
$.cookie(key, '', $.extend({}, options, { expires: -1 }));
return !$.cookie(key);
};
Jak widać podczas gdy ciasteczko istnieje kontrole funkcyjne nie bierze opcje sprzeciw pod uwagę. Więc jeśli jesteś na innej ścieżce niż ciasteczko, które próbujesz usunąć, funkcja zawodzi.
Kilka Solutions:
Upgrade Jquery Cookies. Najnowsza wersja nawet nie sprawdza tego stanu.
lub dodać to do ciebie dokument gotowy
$.removeCookie = function (key, options) {
if ($.cookie(key, options) === undefined) { // this line is the fix
return false;
}
// Must not alter options, thus extending a fresh object...
$.cookie(key, '', $.extend({}, options, { expires: -1 }));
return !$.cookie(key);
};
lub podczas usuwania ciasteczek zrobić coś takiego:
$.cookie('cookie-name', '', { path: '/my/path', expires:-1 });
Czy dołączonego wtyczki Cookie? jQuery nie ma domyślnie metod "cookie" i "removeCookie". – kapa