Удалите определенное имя в cookie с помощью Javascript [duplicate]

Я использую функцию abs, очень полезную для циклов

x = 1
for y in range(0, 3):
    x = abs(x - 1)

x будет 0.

107
задан Charlie 15 May 2012 в 02:16
поделиться

4 ответа

Чтобы удалить файл cookie, установите дату expires на что-то в прошлом. Функция, которая делает это, будет.

var delete_cookie = function(name) {
    document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';
};

Затем для удаления cookie с именем roundcube_sessauth просто выполните.

delete_cookie('roundcube_sessauth');
148
ответ дан paxdiablo 25 August 2018 в 12:29
поделиться

Вы должны определить путь, по которому существует файл cookie, чтобы убедиться, что вы удалили реальный

function set_cookie(name, value) {
  document.cookie = name +'='+ value +'; Path=/;';
}
function delete_cookie(name) {
  document.cookie = name +'=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}

Если вы не указали путь, браузер устанавливает cookie относительно текущей страницы, поэтому если вы удаляете cookie на другой странице, другой файл cookie продолжает свое существование.

Редактировать на основе комментария @Evan Morrison. Имейте в виду, что в некоторых случаях для определения правильного файла cookie, Domain параметр также необходим. Обычно используемый как Domain=.yourdomain.com Период перед именем домена означает, что этот файл cookie может существовать в любом поддомене (www также считается поддоменом).

Также, как упоминалось в ответе @ RobertT, cookie HttpOnly не может быть удален с помощью JavaScript на стороне клиента.

176
ответ дан emii 25 August 2018 в 12:29
поделиться

// если прошло exMins = 0, он будет удален, как только он его создаст.

function setCookie(cname, cvalue, exMins) {
    var d = new Date();
    d.setTime(d.getTime() + (exMins*60*1000));
    var expires = "expires="+d.toUTCString();  
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

setCookie('cookieNameToDelete','',0) // this will delete the cookie.
6
ответ дан Kishor Patil 25 August 2018 в 12:29
поделиться

Я не уверен, что это была ситуация с версией Roundcube с мая '12, но для текущего ответ заключается в том, что вы не можете удалить файл cookie roundcube_sessauth из JavaScript, поскольку он помечен как HttpOnly , И это означает, что он недоступен из кода на стороне клиента JS и может быть удален только с помощью скрипта на стороне сервера или путем прямого действия пользователя (через некоторые механизмы браузера, такие как встроенный отладчик или какой-либо плагин).

5
ответ дан RobertT 25 August 2018 в 12:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: