Что то непонятное творится с удалением кук:
Есть Кука:
"auth_tkt="761c804687064626d4efd7016a3202bf555c67b21!userid_type:int"; auth_tkt="761c804687064626d4efd7016a3202bf555c67b21!userid_type:int""
удаляю с помощью функции:
function delete_cookie( name ) {
document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
Результат первая удаляется вторая остаётся.
Удаляю с помощью $.cookie
$.removeCookie('auth_tkt');
тоже самое.
Возвращаю вторую оставшуюся куку:
function getCookie(name) {
var matches = document.cookie.match(new RegExp(
"(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
));
return matches ? decodeURIComponent(matches[1]) : undefined;
}
getCookie('auth_tkt'); => ""761c804687064626d4efd7016a3202bf555c67b21!userid_type:int""
Что за байда не могу понять никак. Но не javascript, серверным путём куки удаляются нормально.
Вопрос только в том что я строю одно страничное приложение-сайт и мне нужно именно через JS.
Решено вот таким образом:
function Get_Cookie( check_name ) {
// first we'll split this cookie up into name/value pairs
// note: document.cookie only returns name=value, not the other components
var a_all_cookies = document.cookie.split( ';' );
var a_temp_cookie = '';
var cookie_name = '';
var cookie_value = '';
var b_cookie_found = false; // set boolean t/f default f
for ( i = 0; i < a_all_cookies.length; i++ )
{
// now we'll split apart each name=value pair
a_temp_cookie = a_all_cookies[i].split( '=' );
// and trim left/right whitespace while we're at it
cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
// if the extracted name matches passed check_name
if ( cookie_name == check_name )
{
b_cookie_found = true;
// we need to handle case where cookie has no value but exists (no = sign, that is):
if ( a_temp_cookie.length > 1 )
{
cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
}
// note that in cases where cookie is initialized but no value, null is returned
return cookie_value;
break;
}
a_temp_cookie = null;
cookie_name = '';
}
if ( !b_cookie_found )
{
return null;
}
}
function Delete_Cookie( name, path, domain ) {
if ( Get_Cookie( name ) ) document.cookie = name + "=" +
( ( path ) ? ";path=" + path : "") +
( ( domain ) ? ";domain=" + domain : "" ) +
";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}
Запускаю две функции:
Delete_Cookie('auth_tkt', '/', 'testproject.python')
Delete_Cookie('auth_tkt', '/')
может для уверенности нужно ещё:
Delete_Cookie('auth_tkt', '/', '.testproject.python')
Удаляет...