#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.