Почему Chrome игнорирует локальные куки jQuery?
Я использую плагин jQuery Cookie (скачать и demo и исходный код с комментариями), чтобы установить и прочитать файл cookie. Я разрабатываю страницу на локальном компьютере .
Следующий код успешно установит файл cookie в FireFox 3, IE 7 и Safari (ПК). Но , если браузер является Google Chrome, а страница - это локальный файл, он не работает.
$.cookie("nameofcookie", cookievalue, {path: "/", expires: 30});
Что я знаю:
- Плагин demo работает с Chrome.
- Если я помещаю свой код на веб-сервер (адрес, начинающийся с http://), он работает с Chrome.
Таким образом, файл cookie не работает только для Google Chrome в локальных файлах.
Возможные причины:
- Google Chrome не принимает файлы cookie с веб-страниц на жестком диске (такие пути, как файл:///C:/websites/foo.html)
- Что-то в подключении плагина заставляет Chrome отклонять такие файлы cookie.
Может ли кто-нибудь подтвердить это и определить основную причину?
Ответы
Ответ 1
Chrome не поддерживает файлы cookie для локальных файлов (или, как упоминал Питер Лайонс, localhost *), если вы не запустили его с флагом --enable-file-cookies. Вы можете прочитать об этом на http://code.google.com/p/chromium/issues/detail?id=535.
* Chrome поддерживает файлы cookie, если вы используете локальный IP-адрес (127.0.0.1) напрямую. поэтому в случае локального хоста это может быть более простым способом.
Ответ 2
Для локальных приложений вместо этого используйте localStorage в Chrome:
http://people.w3.org/mike/localstorage.html
Ответ 3
У меня была какая-то проблема, и я решил это ужасное решение.
используя плагин для хранения и cookie.
<script src="js/jquery.cookies.2.2.0.js" type="text/javascript"></script>
<script src="js/jquery.Storage.js" type="text/javascript"></script>
var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
//get cookies
var helpFlag=(is_chrome)?$.Storage.get("helpFlag"):$.cookies.get("helpFlag");
//set cookies
if(is_chrome)$.Storage.set("helpFlag", "1");else $.cookies.set("helpFlag", "1");
Я знаю, что это идеальное решение, но работает для меня
Ответ 4
У меня была такая же проблема, попробуйте вместо этого использовать IP-адрес localhost. Например, "http://127.0.0.1/yoursite/"
Ответ 5
просмотрите Cookies и Google Analytics.
$.cookie("nameofcookie", cookievalue, {path: "/", expires: 30});
измените эту строку на
$.cookie("nameofcookie", cookievalue, {*Path:* "/", expires: 30});
этот проект работает нормально.
Ответ 6
Это помогло мне:
![введите описание изображения здесь]()
Щелкните правой кнопкой мыши значок Chrome и выберите "Свойства", вкладку "Ярлык" и добавьте файлы -enable-files-cookies на последнем целевом пути.
Ответ 7
Другой возможной причиной является path: "/"
, так как вы не используете обычный веб-URL, /
, вероятно, мало что значит - попробуйте без установки пути вообще.
Ответ 8
Если вы используете chrominum, это команда для включения локальных файлов cookie
хром-браузер --enable-file-cookies
Это то же самое для хром
Надеюсь, что это поможет вам!