document.cookie не может быть установлен в Chrome - PullRequest
0 голосов
/ 24 февраля 2019

Я хочу сохранить куки, используя простой JavaScript.Итак, я пошел на w3 , и у них есть готовая функция для сохранения куки.Когда я попробовал этот код в Firefox, он работал точно так, как ожидалось, но в настройках Chrome cookie-файлы не оказали никакого влияния.Я видел другие вопросы на этом сайте, где cookie был удален из-за отсутствия срока действия, но я оба назначил дату на несколько дней позже, а document.cookie так и не был установлен.Я проходил код построчно в отладчике, но значение document.cookie оставалось пустой строкой даже сразу после строки:

document.cookie = cname + "=" + cvalue + ", " + expires + ", path=/ ;";

Я пробовал это с и без пути и илидата истечения срока действия, но, кажется, ничто не имеет эффекта.Что мне делать?

Некоторая дополнительная информация о моих файлах по запросу @ AndrewL64: я создал одностраничную HTML-игру.У меня есть файл index.html, файл mainstyle.css и файл main.js для скрипта.В моем сценарии я использую JQuery для управления элементами DOM.Я поместил код в событие загрузки страницы следующим образом:

//==================On Page Load ===================================
$(document).ready(function () {

    $("#gameContainer").hide();
    $("#mainContainer").hide();
    //$("#startContainer").hide();
    $("#skillsContainer").hide();


    prepareGame();
    //startGame();

    /*var cookieName = "sp_str_cookie_save1";
    var saveString = "some value";
    setCookie(cookieName, saveString, 10);
    var cookieResult = getCookie(cookieName);*/
    const cname = "someCookie";
    const expires = "Thu, 2 Aug 2020 20:47:11 UTC";
    const cvalue = "someValue";

    document.cookie = cname + "= " + cvalue + "; " + "expires=" + expires + "; " + "path=/";

});

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019

Я нашел ответ в другом вопросе Stackoverflow здесь .Короче говоря, некоторые браузеры не устанавливают куки при локальном открытии html-файла.Например, Chrome нет, но Firefox делает.Поэтому проверяйте куки в Firefox, если вы работаете в автономном режиме.

0 голосов
/ 24 февраля 2019

Параметры должны быть разделены точкой с запятой и пробелом , а не запятой .


Изменитьтекущий код из этого:

document.cookie = cname + "=" + cvalue + ", " + expires + ", path=/ ;";

Для этого:

document.cookie = cname + "= " + cvalue + "; " + expires + "; " + "path=/";

Проверьте и запустите этот JSFiddle , который имеет следующее Фрагмент кода и затем проверьте файлы cookie вашего браузера, чтобы увидеть добавленные новые файлы cookie:

const cname = "someCookie";
const expires = "Thu, 2 Aug 2020 20:47:11 UTC";
const cvalue = "someValue";

document.cookie = cname + "= " + cvalue + "; " + "expires=" + expires + "; " + "path=/";

NB Приведенный выше фрагмент кода не будет устанавливать cookie, поскольку среда фрагмента - это просто песочница иотсутствует флаг "allow-same-origin".Проверьте JSFiddle, чтобы увидеть, как JavaScript выше добавляет cookie в ваш браузер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...