Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Не могу получить куку


Автор: V0fka 26.8.2016, 15:45
Привет!

В Хроме жму Ф12, перехожу на вкладку Application, там Cookies. Вижу куки. Хочу получить определенную куку Javascript-ом. Нашел https://learn.javascript.ru/cookie функцию:

Код

// возвращает cookie с именем name, если есть, если нет, то undefined
function getCookie(name) {
  var matches = document.cookie.match(new RegExp(
    "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
  ));
  return matches ? decodeURIComponent(matches[1]) : undefined;
}


Вставляю её на страничку, после объявления сразу пишу

Код

alert(getCookie('mycookie'));


Получаю undefined. Но через Ф12 вижу, что кука есть. Expires / Max-Age у неё стоит на год вперед.

Вопрос: как мне её получить?

Автор: _zorn_ 26.8.2016, 15:53
Заюзать что нибудь получше ?
Например https://github.com/js-cookie/js-cookie

Автор: V0fka 26.8.2016, 16:30
_zorn_, мне кажется, что дело не в инструменте, а в том, что так задумано, но я просто об этом не знаю. Поясню. Тут на сайте, открываю в Хроме указанную выше вкладку, под ней консоль. Ввожу в консоли document.cookie и вижу не то, что показывается во вкладке Application. 

user posted image

Так вот, почему в консоли я не вижу того, что находится на вкладке Application?

Автор: _zorn_ 26.8.2016, 17:44
Цитата(V0fka @  26.8.2016,  23:30 Найти цитируемый пост)
 мне кажется, что дело не в инструменте

Когда кажется креститься надо... говорят.
Вы хоть понимаете как куки выглядят в document.cookie ?
А судя по "нажал туда, открыл вкладку, посмотрел куки" вы вообще не понимаете как куки работают...

Просто попробуйе другой инструмент...

ЗЫ. Страницеразревающий скрин лишний.

Автор: _zorn_ 27.8.2016, 11:43
С регекспами вы скорей всего тоже не знакомы. В вашем примере мозгодробительный пример в replace. 
Поэтому и говорю про другой инструмент. Чем сложнее регексп тем в нем больше ошибок...

Автор: V0fka 29.8.2016, 17:52
Цитата(_zorn_ @  26.8.2016,  17:44 Найти цитируемый пост)
Вы хоть понимаете как куки выглядят в document.cookie ?

Думал, что понимаю. Если верно понимаю, то это набор пар ключ-значение, разделенный точкой с запятой.

Цитата(_zorn_ @  26.8.2016,  17:44 Найти цитируемый пост)
А судя по "нажал туда, открыл вкладку, посмотрел куки" вы вообще не понимаете как куки работают...

Не то, чтобы вообще, но точно не являюсь экспертом в веб-разработке.

Цитата(_zorn_ @  26.8.2016,  17:44 Найти цитируемый пост)
Просто попробуйе другой инструмент...

Попробовал. Результат тот же. Попробую ещё рез донести мысль. При просмотре document.cookie в консоли, я там не вижу некоторых кук, которые вижу в гугл хроме там, где писал выше. На картинке выше я пытался это изобразить. В консоли при просмотре document.cookie я не вижу того, что показывается на вкладке Application. Я ожидал, что и там и там будет результат одинаковый. Но почему-то это не так. Вот и хочу узнать почему.

Цитата(_zorn_ @  26.8.2016,  17:44 Найти цитируемый пост)
ЗЫ. Страницеразревающий скрин лишний.

Я обычную картинку вставил, не знаю почему страницу порвало.

Цитата(_zorn_ @  27.8.2016,  11:43 Найти цитируемый пост)
С регекспами вы скорей всего тоже не знакомы. В вашем примере мозгодробительный пример в replace. 

Опять таки, не то, чтобы совсем не знаком. Но ввиду того, что функцию взял на авторитетном ресурсе, я подумал, что там должно быть все путем. Но то такое. Повторюсь, что я не вижу определенных кук даже в document.cookie.

Цитата(_zorn_ @  27.8.2016,  11:43 Найти цитируемый пост)
Поэтому и говорю про другой инструмент. Чем сложнее регексп тем в нем больше ошибок...

Повторюсь. Попробовал, но результат тот же.

Автор: ksnk 29.8.2016, 18:54
А я вот, все вижу, что я делаю неправильно?
http://pixs.ru/showimage/2016082918_4043294_23100690.png

Автор: V0fka 30.8.2016, 10:36
Сейчас ещё раз проверил, тоже вроде всё есть. Ничего не понимаю. Понаблюдаю ещё. Извините за беспокойство. smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)