Why does Chrome ignore local jQuery cookies?

JqueryCookiesGoogle Chrome

Jquery Problem Overview


I am using the jQuery Cookie plugin (http://plugins.jquery.com/project/cookie">download</a> and http://stilbuero.de/jquery/cookie/">demo</a> and http://plugins.jquery.com/files/jquery.cookie.js.txt">source code with comments) to set and read a cookie. I'm developing the page on my local machine.

The following code will successfully set a cookie in FireFox 3, IE 7, and Safari (PC). But if the browser is Google Chrome AND the page is a local file, it does not work.

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

What I know:

So the cookie fails only for Google Chrome on local files.

Possible causes:

  • Google Chrome doesn't accept cookies from web pages on the hard drive (paths like file:///C:/websites/foo.html)
  • Something in the plugin implentation causes Chrome to reject such cookies

Can anyone confirm this and identify the root cause?

Jquery Solutions


Solution 1 - Jquery

Chrome doesn't support cookies for local files (or, like Peter Lyons mentioned, localhost*) unless you start it with the --enable-file-cookies flag. You can read a discussion about it at http://code.google.com/p/chromium/issues/detail?id=535.

*Chrome does support cookies if you use the local IP address (127.0.0.1) directly. so in the localhost case, that could be an easier workaround.

Solution 2 - Jquery

For local applications use localStorage in Chrome instead: http://people.w3.org/mike/localstorage.html

Solution 3 - Jquery

i had some problem and solved it this terrible solution. using store and cookie plugin together.

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

I know that this isnt perfect solution but works for me

Solution 4 - Jquery

This did the job for me:

enter image description here

Right click on your Chrome Icon and select Properties, Shortcut tab and add --enable-file-cookies at the last of the target path.

Solution 5 - Jquery

I had the same issue, please try using the IP address of localhost instead. For e.g "http://127.0.0.1/yoursite/"

Solution 6 - Jquery

please check out Cookies & Google Analytics.

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

change this line to

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

this project working is fine.

Solution 7 - Jquery

Another possible cause is the path: "/", since you're not using a normal web URL, / probably doesn't mean much - try without setting the path at all.

Solution 8 - Jquery

If you use chrominum this is the command to enable local cookies

> chromium-browser --enable-file-cookies

It's the same thing for chrome

Hope this help you !

Solution 9 - Jquery

As workaround you can use Tampermonkey with access to local files ( How to include Local htm pages in a Tampermonkey script? ) By that way you will use Tampermonkey's storage, and will be able to set and get your data by functions GM_getValue(data) and GM_setValue(data). I used that for my local HTML page, which i used as customizable alternative to Windows Explorer

But actually localStorage from Yuri's answer works perfect.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionNathan LongView Question on Stackoverflow
Solution 1 - JqueryMatthew CrumleyView Answer on Stackoverflow
Solution 2 - JqueryYuriView Answer on Stackoverflow
Solution 3 - JquerySerdar GünerView Answer on Stackoverflow
Solution 4 - JquerypaulalexandruView Answer on Stackoverflow
Solution 5 - JqueryTijiView Answer on Stackoverflow
Solution 6 - JquerychaoxfuView Answer on Stackoverflow
Solution 7 - JqueryGregView Answer on Stackoverflow
Solution 8 - JqueryElyes FrikhaView Answer on Stackoverflow
Solution 9 - JqueryYaroslav WallyView Answer on Stackoverflow