Подтвердить что ты не робот

Javascript set cookie с истечением времени

Я устанавливаю cookie с помощью Javascript, и он работает нормально, но я не беру на себя время истечения срока действия. Он продолжает принимать значение сеанса независимо от того, что я даю, ниже приведен код, который я взял из здесь

var now = new Date();
var time = now.getTime();
var expireTime = time + 1000*60;
now.setTime(expireTime);
var tempExp = 'Wed, 31 Oct 2012 08:50:17 GMT';
document.cookie = aaa+'='+sStr+';expires='+now.toGMTString()+';path=/';

Я попробовал предоставить жестко-кодированное значение, но все же он истекает как сеанс в инструменте chrome dev

var tempExp = 'Wed, 31 Oct 2012 08:50:17 GMT';
document.cookie = aaa+'='+sStr+';expires='+tempExp+';path=/';

Любая идея, что я делаю неправильно?

4b9b3361

Ответ 1

Думаю, все в порядке. Я установил время до 1000 * 36000.

function display() { 
  var now = new Date();
  var time = now.getTime();
  var expireTime = time + 1000*36000;
  now.setTime(expireTime);
  var tempExp = 'Wed, 31 Oct 2012 08:50:17 GMT';
  document.cookie = 'cookie=ok;expires='+now.toGMTString()+';path=/';
  //console.log(document.cookie);
}

expiration

Ответ 2

Здесь функция, я написал другое приложение. Не используйте повторно:

function writeCookie (key, value, days) {
    var date = new Date();

    // Default at 365 days.
    days = days || 365;

    // Get unix milliseconds at current time plus number of days
    date.setTime(+ date + (days * 86400000)); //24 * 60 * 60 * 1000

    window.document.cookie = key + "=" + value + "; expires=" + date.toGMTString() + "; path=/";

    return value;
};

Ответ 3

Ниже приведены фрагменты кода для создания и удаления файлов cookie. Печенье установлено на 1 день.

// 1 Day = 24 Hrs = 24*60*60 = 86400.
  1. Используя max-age:

    • Создание куки:

    document.cookie = "cookieName=cookieValue; max-age=86400; path=/;";
    
    • Удаление куки:

    document.cookie = "cookieName=; max-age=- (any digit); path=/;";
    
  2. Используя expires:

    • Синтаксис создания куки на один день:

    var expires = (new Date(Date.now()+ 86400*1000)).toUTCString();
    document.cookie = "cookieName=cookieValue; expires=" + expires + 86400) + ";path=/;"
    

Ответ 4

document.cookie = "cookie_name=cookie_value; max-age=31536000; path=/";

Установим значение на год.

Ответ 5

Используйте как это (источник):

function setCookie(c_name,value,exdays)
{

var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie = c_name+"="+c_value+"; path=/";
}

Ответ 6

Я бы хотел повторить ответ Полина и просто добавить одну вещь, если вы все еще застряли. Этот код, безусловно, работает, чтобы установить определенное время истечения срока действия cookie. Одна из проблем, которые могут возникнуть, заключается в том, что если вы используете Chrome и получаете доступ к своей странице через " http://localhost..." или "file://", Chrome не будет хранить файлы cookie. Легкое исправление для этого заключается в использовании простого http-сервера (например, node http-server, если вы еще этого не сделали) и явно перейти на свою страницу как " http://127.0.0.1", и в этом случае Chrome будет хранить файлы cookie для локальной разработки. Это заставило меня немного повиснуть, потому что, если вы этого не сделаете, ваш ключ истечения будет просто иметь значение "сеанс", когда вы исследуете его в консоли или в Dev Tools.

Ответ 7

Как насчет просто установить срок действия на пустой:

document.cookie = "token =; expires =; path =/";