#javascript #cookies
#javascript #файлы cookie
Вопрос:
Работает ли document.cookie только на сервере? Похоже, что предупреждение не выводит мой cookie.
document.cookie = "d=e";
alert(document.cookie);
Комментарии:
1. Вы запускаете его из
file
протокола?
Ответ №1:
Некоторые браузеры не будут учитывать cookie-файлы, установленные документом с file
протоколом.
Chrome намеренно отключает cookie-файлы в file:// по целому ряду причин. Когда мы писали о поддержке файлов cookie, правильное поведение было неясным при работе с такими вещами, как общие папки. Мы обнаружили, что файлы cookie в file:// довольно необычны, и это имеет несколько негативных последствий для безопасности.
Однако вы можете включить их с помощью флага командной строки —enable-file-cookies.
Файлы cookie — это, строго, механизм HTTP в соответствии с RFC 2109. Не должно быть разумных ожиданий, что они будут работать для протоколов, отличных от HTTP, а тем более file: /// , и неясно, каким должно быть их поведение и какие правила разделения безопасности должны применяться.
Комментарии:
1. chrome.exe —enable-file-cookies не решает эту проблему, по крайней мере, больше.
Ответ №2:
Файлы cookie связаны с определенным доменом. Если вы просто открываете свой HTML-документ в виде файла, то как браузер узнает, с каким доменом связать cookie-файл или к каким cookie-файлам он должен разрешить доступ к этому файлу?
Итак, да, для всех практических целей ваш браузер разрешит сохранять и извлекать cookie-файлы только в том случае, если ваш HTML-документ обслуживается сервером / доступен через HTTP URL, который позволяет ему определить какой-либо домен, с которым будут связаны cookie-файлы.