webentwicklung-frage-antwort-db.com.de

Warum ignoriert Chrome lokale jQuery-Cookies?

Ich verwende das jQuery Cookie Plugin ( download und demo und Quellcode mit Kommentaren ), um ein Cookie zu setzen und zu lesen. Ich entwickle die Seite auf meinem local-Rechner.

Mit dem folgenden Code wird ein Cookie in FireFox 3, IE 7 und Safari (PC) erfolgreich gesetzt. Aber wenn der Browser Google Chrome ist UND die Seite eine lokale Datei ist, funktioniert sie nicht.

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

Was ich weiß:

  • Das Plugin demo funktioniert mit Chrome.
  • Wenn ich meinen Code auf einen Webserver stecke (Adresse beginnt mit http: //), funktioniert er mit Chrome.

Daher schlägt der Cookie nur für Google Chrome für lokale Dateien fehl.

Mögliche Ursachen:

  • Google Chrome akzeptiert keine Cookies von Webseiten auf der Festplatte (Pfade wie file: /// C: /websites/foo.html).
  • Etwas in der Plugin-Implementierung führt dazu, dass Chrome solche Cookies ablehnt

Kann jemand das bestätigen und die Ursache feststellen?

80
Nathan Long

Chrome unterstützt keine Cookies für lokale Dateien (oder, wie von Peter Lyons erwähnt wurde, localhost *), es sei denn, Sie starten es mit dem Flag --enable-file-cookies. Eine Diskussion dazu finden Sie unter http://code.google.com/p/chromium/issues/detail?id=535 .

* Chrome unterstützt Cookies, wenn Sie die lokale IP-Adresse (127.0.0.1) direkt verwenden. Im localhost-Fall könnte dies eine einfachere Problemumgehung sein.

91
Matthew Crumley

Verwenden Sie für lokale Anwendungen localStorage stattdessen in Chrome: http://people.w3.org/mike/localstorage.html

6
Yuri

ich hatte ein Problem und löste diese schreckliche Lösung ... mit Store und Cookie Plugin zusammen.

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

Ich weiß, dass dies keine perfekte Lösung ist, aber für mich funktioniert

5
Serdar Güner

Dies hat die Arbeit für mich erledigt:

 enter image description here

Klicken Sie mit der rechten Maustaste auf Ihr Chrome-Symbol und wählen Sie Eigenschaften, Registerkarte Verknüpfung, und fügen Sie am letzten Zielpfad --enable-file-cookies hinzu.

4
paulalexandru

Ich hatte das gleiche Problem. Versuchen Sie es stattdessen mit der IP-Adresse von localhost. Für "http://127.0.0.1/yoursite/"

3
Tiji

bitte check out Cookies & Google Analytics .

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

Ändern Sie diese Zeile in 

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

dieses Projekt funktioniert gut.

3
chaoxfu

Eine andere mögliche Ursache ist path: "/". Da Sie keine normale Web-URL verwenden, bedeutet / wahrscheinlich nicht viel - versuchen Sie, den Pfad überhaupt nicht festzulegen.

2
Greg

Wenn Sie Chrominum verwenden, ist dies der Befehl, lokale Cookies zu aktivieren

chrom-Browser - Cookies für Cookies

Für Chrom ist es dasselbe

Hoffe das hilft dir!

0
Elyes Frikha