Почему Chrome игнорирует локальные файлы cookie jQuery?



Я использую плагин jQuery Cookie (скачать и демо и исходный код с комментариями) для установки и чтения файла cookie. Я разрабатываю страницу на моем локальная машина.



следующий код успешно установит cookie в FireFox 3, IE 7 и Safari (ПК). Но если браузер Google Chrome и страница является локальным файлом, он не работает.



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


Что Я знай:




  • Плагины демо работает с Chrome.

  • если я помещаю свой код на веб-сервер (адрес, начинающийся с http://), он работает с Chrome.


таким образом, куки не удается только для Google Chrome на локальных файлах.



возможные причины:




  • Google Chrome не принимает файлы cookie с веб-страниц на жестком диске (например, пути файл: / / / C: / websites / foo.html)

  • что-то в имплантировании плагина заставляет Chrome отклонять такие куки


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

731   8  

8 ответов:

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

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

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

У меня была какая-то проблема и я решил ее этим ужасным решением. с помощью магазина и плагин куки.

<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");

Я знаю, что это не идеальное решение, но работает для меня

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

enter image description here

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

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

пожалуйста, проверьте Cookies & Google Analytics.

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

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

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

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

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

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

chromium-browser --enable-file-cookies

Это то же самое для chrome

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

Comments

    Ничего не найдено.