Чтение cookie, созданного из NewCookie ()

javascript cookies

98 просмотра

2 ответа

Я создал cookie с помощью Newcookie (), и я могу получить к нему доступ через браузер, как показано ниже. Теперь мне нужно прочитать печенье введите описание изображения здесь

    function getCookieValue(cookieName) {
    console.log("=====getCookieValue=======");
    var name = cookieName + "=";
    var cookies = document.cookie.split(';');
    console.log("=====ALL cookies======="+cookies);
    if (!cookies) {
        return null;
    }
    console.log("=====cookies.length======="+cookies.length);
    for (var i = 0; i < cookies.length; i++) {
        var cookie = cookies[i];
        console.log("=====cookies======="+cookies[0]);
        if (cookie.indexOf(name) == 0) {
            return cookie.substring(name.length, cookie.length);
        }
    }
    return null;
}

Но с помощью этого метода я не могу прочитать cookie. Пожалуйста, посоветуйте мне это. Спасибо

Автор: Hasanthi Источник Размещён: 12.11.2019 09:27

Ответы (2)


1 плюс

Ваша функция почти идеальна. Вам просто нужно изменить эту строку:

document.cookie.split(';');

Вы можете проверить результат в консоли, выполнив приведенный выше оператор: вы получите массив со всеми файлами cookie, но каждому из них предшествует пробел . Вот почему сравнение

if (cookie.indexOf(name) == 0)

не работает, как ожидалось, потому что ожидаемая подстрока начинается не с позиции 0, а с 1.

Поэтому вам нужно разделить список файлов cookie не на одну точку с запятой, а на точку с запятой и пробел . Я не уверен во всех браузерах, так что я думаю, что самый безопасный способ сделать это с RegExp, который проверяет наличие дополнительных пробелов:

document.cookie.split(/;\s?/);
Автор: Sebastian Simon Размещён: 06.05.2015 07:10

0 плюса

Вы можете использовать это ..

document.cookie.split(";", -1)

Вызов String.split (String) возвращает String.split (String, 0), который отбрасывает завершающие пустые строки. String.split (String, n) с n <0 ничего не удалит.

Для дальнейшего понимания вы можете следовать Javadocs: - Разделить документы

Автор: Tanul Размещён: 06.05.2015 07:22
Вопросы из категории :
32x32