web-dev-qa-db-ja.com

なぜChrome=はローカルjQuery Cookieを無視しますか?

JQuery Cookieプラグイン( download および demo および コメント付きソースコード )を使用して、Cookieを設定および読み取ります。私はローカルマシンでページを開発しています。

次のコードは、FireFox 3、IE 7、およびSafari(PC)でCookieを正常に設定します。ただし、ブラウザがGoogle Chromeであり、ページがローカルファイルの場合、機能しません。

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

私が知っていること

  • プラグインの demo はChromeで動作します。
  • Webサーバー(http://で始まるアドレス)にコードを配置すると、Chromeで機能します。

そのため、ローカルファイルのGoogle ChromeのCookieのみが失敗します

考えられる原因

  • Google Chromeは、ハードドライブ上のWebページ(file:/// C:/websites/foo.htmlなどのパス)からのCookieを受け入れません
  • プラグイン実装の何かが原因でChromeがそのようなCookieを拒否します

誰でもこれを確認して根本原因を特定できますか?

81
Nathan Long

Chromeは、-enable-file-cookiesフラグで起動しない限り、ローカルファイル(または、Peter Lyonsが言及したように、localhost *)のCookieをサポートしません。それに関する議論は http://code.google.com/p/chromium/issues/detail?id=535 で読むことができます。

*ローカルIPアドレス(127.0.0.1)を直接使用する場合、ChromedoesはCookieをサポートします。 localhostの場合、それは簡単な回避策かもしれません。

92
Matthew Crumley

ローカルアプリケーションの場合は、代わりにChrome=でlocalStorageを使用します: http://people.w3.org/mike/localstorage.html

6
Yuri

私はいくつかの問題を抱えていて、このひどい解決策を解決しました。ストアと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");

これは完璧な解決策ではないことを知っていますが、私にとってはうまくいきます

5
Serdar Güner

これは私のために仕事をしました:

enter image description here

Chromeアイコンを右クリックして、[プロパティ]、[ショートカット]タブを選択し、ターゲットパスの最後に--enable-file-cookiesを追加します。

4
paulalexandru

同じ問題が発生しました。代わりにローカルホストのIPアドレスを使用してみてください。例:「http://127.0.0.1/yoursite/」

3
Tiji

Cookies&Google Analytics をご覧ください。

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

この行を

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

このプロジェクトは正常に機能しています。

3
chaoxfu

別の考えられる原因はpath: "/"、通常のWeb URLを使用していないため、/はおそらくあまり意味がありません-パスをまったく設定せずに試してください。

2
Greg

クロムを使用する場合、これはローカルCookieを有効にするコマンドです

クロムブラウザ--enable-file-cookies

クロムについても同じです

これがあなたを助けることを願っています!

0
Elyes Frikha