Почему Chrome игнорирует локальные файлы cookie jQuery? - PullRequest
81 голосов
/ 02 декабря 2008

Я использую плагин jQuery Cookie ( загрузить и демо и исходный код с комментариями ) для установки и чтения 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 отклонять такие куки

Кто-нибудь может подтвердить это и определить основную причину?

Ответы [ 8 ]

92 голосов
/ 07 декабря 2008

Chrome не поддерживает куки для локальных файлов (или, как упоминал Питер Лайонс, localhost *), если вы не запускаете его с флагом --enable-file-cookies. Вы можете прочитать об этом на http://code.google.com/p/chromium/issues/detail?id=535.

* Chrome поддерживает файлы cookie, если вы используете локальный IP-адрес (127.0.0.1) напрямую. так что в случае с localhost это может быть более простой обходной путь.

6 голосов
/ 20 марта 2010

Для локальных приложений используйте localStorage в Chrome: http://people.w3.org/mike/localstorage.html

5 голосов
/ 07 октября 2011

У меня была какая-то проблема, и я решил это ужасное решение. совместное использование плагина store и 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 голосов
/ 16 мая 2017

Это сделало работу за меня:

enter image description here

Щелкните правой кнопкой мыши значок Chrome и выберите «Свойства», вкладку «Ярлык» и добавьте --enable-file-cookies в последний из целевых путей.

3 голосов
/ 21 сентября 2011

проверьте Cookies & Google Analytics .

$.cookie("nameofcookie", cookievalue, {path: "/", expires: 30});

изменить эту строку на

$.cookie("nameofcookie", cookievalue, {*Path:* "/", expires: 30});

Этот проект работает нормально.

3 голосов
/ 24 июня 2011

У меня была такая же проблема, попробуйте вместо этого использовать IP-адрес localhost. Например, "http://127.0.0.1/yoursite/"

2 голосов
/ 02 декабря 2008

Другая возможная причина - path: "/", поскольку вы не используете обычный веб-URL, /, вероятно, не имеет большого значения - попробуйте вообще не задавать путь.

0 голосов
/ 13 мая 2015

Если вы используете chrominum, это команда для включения локальных файлов cookie

chromium-browser --enable-file-cookies

То же самое для хрома

Надеюсь, это поможет вам!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...