Я пытаюсь получить доступ к файлу cookie на субдомене (small.example.org
) из родительского домена (example.org
), и я хотел бы сделать это из нескольких Javascript на странице.
Прежде всего, я устанавливаю файл cookie для домена small.example.org
document.cookie = "name=Mike; domain=small.example.org"
Когда я загружаю small.example.org
я могу успешно просмотреть файл cookie, который я только что установил. При загрузке example.org
я не вижу cookies с small.example.org
. Возможно, это не удивительно.
Поэтому я решил, что мне нужно сделать запрос в субдомен, чтобы включить что-то в основной домен, тег сценария.
<script src="/script.js"></script>
Теперь, когда я загружаю example.org
с запросом на тег скрипта и смотрю в браузере, я вижу файл cookie с small.example.org
.
Но когда я пытаюсь получить к нему доступ из Javascript, используя document.cookie
, я ничего не получаю.
Это ожидаемое поведение? Я думал, что вы не можете получить доступ к файлам cookie с Javascript, только если у них HTTPOnly
флаг HTTPOnly
.
Есть ли способ обойти это? Пример, приведенный выше, очень близок к моему сценарию использования и, к сожалению, я не могу играть слишком много с архитектурой.
Это ожидаемое поведение.
JavaScript может получить доступ только к файлу cookie, который, если domain
файла cookie:
example.org
не может читать файлы cookie для small.example.org
(хотя обратное неверно).
Обратите внимание, что Origin для JavaScript определяется URL-адресом документа HTML, в котором работает JS, а не URL-адресом, с которого загружен JS.
Вы также можете:
domain
указанный при настройке файла cookie