Я использую плагин JQuery Cookie ( скачать и демо и исходный код с комментариями ) , чтобы установить и читать куки. Я разрабатываю страницу на своем локальном компьютере .
Следующий код успешно установит cookie в FireFox 3, IE 7 и Safari (ПК). Но если браузер - это Google Chrome, И страница является локальным файлом , это не работает.
$.cookie("nameofcookie", cookievalue, {path: "/", expires: 30});
Что я знаю :
- Демо-версия плагина работает с Chrome.
- Если я помещаю свой код на веб-сервер (адрес начинается с http: //), он работает с Chrome.
Таким образом, cookie не работает только для Google Chrome в локальных файлах .
Возможные причины :
- Google Chrome не принимает файлы cookie с веб-страниц на жестком диске (такие пути, как file: /// C: /websites/foo.html)
- Что-то в реализации плагина заставляет Chrome отклонять такие файлы cookie.
Может ли кто-нибудь подтвердить это и определить первопричину?
jquery
cookies
google-chrome
Натан Лонг
источник
источник
Ответы:
Chrome не поддерживает файлы cookie для локальных файлов (или, как упоминал Питер Лайонс, localhost *), если вы не запустите его с флагом --enable-file-cookies. Вы можете прочитать обсуждение этого вопроса на http://code.google.com/p/chromium/issues/detail?id=535 .
* Chrome делает поддержку куки , если вы используете локальный IP - адрес (127.0.0.1) непосредственно. так что в случае localhost это может быть более простой обходной путь.
источник
Для локальных приложений вместо этого используйте localStorage в Chrome: http://people.w3.org/mike/localstorage.html
источник
У меня была проблема, и я решил ее этим ужасным решением. совместное использование магазина и плагина 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");
Я знаю, что это не идеальное решение, но мне подходит
источник
Это сработало для меня:
Щелкните правой кнопкой мыши значок Chrome, выберите «Свойства», вкладку «Ярлык» и добавьте --enable-file-cookies в последний из целевого пути.
источник
У меня была такая же проблема, попробуйте вместо этого использовать IP-адрес localhost. Например, "http://127.0.0.1/yoursite/"
источник
пожалуйста, ознакомьтесь с файлами cookie и Google Analytics .
$.cookie("nameofcookie", cookievalue, {path: "/", expires: 30});
измените эту строку на
$.cookie("nameofcookie", cookievalue, {*Path:* "/", expires: 30});
этот проект работает нормально.
источник
Другая возможная причина заключается в том
path: "/"
, что , поскольку вы не используете обычный веб-URL,/
вероятно, не имеет большого значения - попробуйте вообще не устанавливать путь.источник
Если вы используете chrominum, это команда для включения локальных файлов cookie.
То же самое и с хромом
Надеюсь, это поможет вам!
источник
В качестве обходного пути вы можете использовать Tampermonkey с доступом к локальным файлам ( как включить локальные htm-страницы в сценарий Tampermonkey? ) Таким образом вы будете использовать хранилище Tampermonkey и сможете устанавливать и получать свои данные с помощью функций GM_getValue (данные) и GM_setValue (данные). Я использовал это для своей локальной HTML-страницы, которую я использовал как настраиваемую альтернативу проводнику Windows.
Но на самом деле localStorage из ответа Юрия отлично работает.
источник