Не удается получить доступ к cookie с помощью document.cookie в JS

#javascript #drupal #google-chrome #cookies

#javascript #drupal #google-chrome #файлы cookie

Вопрос:

Я столкнулся со странной проблемой. Я создаю внешнее мобильное веб-приложение, которое взаимодействует с сервисами Drupal. Когда я вызываю службу login.json, устанавливается cookie (или я так думаю), который сообщает Drupal, что я вошел в систему.

Веб-приложение в настоящее время запущено в том же домене, но в подкаталоге. Но вот сложная часть. В моем браузере chrome resources я вижу файл cookie в разделе cookies. Однако, когда я пытаюсь записать содержимое document.cookie, оно возвращается пустым.

Что мне нужно сделать, так это проверить наличие этого cookie в моем JS-коде. Но поскольку я не могу получить его из document.cookie, я не уверен, чего мне не хватает.

Кроме того, срок действия файла cookie истекает не ранее сегодняшнего дня, и домен совпадает.

Заранее спасибо за всю вашу помощь!

Ответ №1:

Похоже, что cookie- это только HTTP. Если это установлено Drupal, вам, возможно, придется изменить исходный код Drupal, чтобы изменить его, если нет доступных настроек.

Запрос на трекере Drupal указывает, что, начиная с версии 6.x, используются файлы cookie только HTTP в качестве меры безопасности.

Комментарии:

1. да, chrome действительно сообщает мне, что это http cookie. Итак, у меня действительно нет способа перехватить его из JS?

2. @MrMaksimize: смысл HTTP cookies в том, что они скрыты от сценариев на стороне клиента в качестве меры безопасности. Единственный способ сделать его видимым — это найти код, устанавливающий cookie на сервере и изменяющий его, чтобы убрать флаг HTTP only.