85

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

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

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

私が知っていること:

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

そのため、Cookie はローカル ファイルの Google Chrome に対してのみ失敗します。

考えられる原因:

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

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

4

9 に答える 9

95

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

*ローカル IP アドレス (127.0.0.1) を直接使用する場合、ChromeはCookie をサポートします。そのため、ローカルホストの場合は、それがより簡単な回避策になる可能性があります。

于 2008-12-07T20:00:56.833 に答える
7

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

于 2010-03-20T16:15:07.347 に答える
6

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

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

于 2011-10-07T09:39:38.520 に答える
3

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

于 2011-06-24T13:25:07.217 に答える
2

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

于 2008-12-02T20:09:47.553 に答える
0

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

chromium-browser --enable-file-cookies

クロームも同じです

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

于 2015-05-13T16:29:46.287 に答える