Używam wtyczki jQuery Cookie ( pobieranie i demo oraz kod źródłowy z komentarzami ), aby ustawić i odczytać plik cookie. Opracowuję tę stronę na moim komputerze lokalnym .
Poniższy kod pomyślnie ustawia plik cookie w FireFox 3, IE 7 i Safari (PC). Ale jeśli przeglądarka to Google Chrome ORAZ strona jest plikiem lokalnym , to nie działa.
$.cookie("nameofcookie", cookievalue, {path: "/", expires: 30});
Co wiem :
- Wersja demonstracyjna wtyczki działa z Chrome.
- Jeśli umieszczę swój kod na serwerze WWW (adres zaczynający się od http: //), działa on z Chrome.
Więc plik cookie nie działa tylko w Google Chrome w plikach lokalnych .
Możliwe przyczyny :
- Google Chrome nie akceptuje plików cookie ze stron internetowych na dysku twardym (ścieżki takie jak file: /// C: /websites/foo.html)
- Coś w implementacji wtyczki powoduje, że Chrome odrzuca takie pliki cookie
Czy ktoś może to potwierdzić i zidentyfikować główną przyczynę?
jquery
cookies
google-chrome
Nathan Long
źródło
źródło
Odpowiedzi:
Chrome nie obsługuje plików cookie dla plików lokalnych (ani, jak wspomniał Peter Lyons, localhost *), chyba że uruchomisz go z flagą --enable-file-cookies. Możesz przeczytać dyskusję na ten temat pod adresem http://code.google.com/p/chromium/issues/detail?id=535 .
* Chrome nie obsługuje plików cookie w przypadku korzystania z lokalnego adresu IP (127.0.0.1) bezpośrednio. więc w przypadku hosta lokalnego może to być łatwiejsze obejście.
źródło
W przypadku aplikacji lokalnych zamiast tego użyj localStorage w przeglądarce Chrome: http://people.w3.org/mike/localstorage.html
źródło
Miałem jakiś problem i rozwiązałem to straszne rozwiązanie. używanie jednocześnie wtyczki sklepu i pliku 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");
Wiem, że to nie jest idealne rozwiązanie, ale dla mnie działa
źródło
To wykonało pracę za mnie:
Kliknij prawym przyciskiem myszy ikonę Chrome i wybierz Właściwości, kartę Skrót i dodaj pliki cookie - włączanie plików na końcu ścieżki docelowej.
źródło
Miałem ten sam problem, spróbuj zamiast tego użyć adresu IP localhost. Na przykład „http://127.0.0.1/yoursite/”
źródło
sprawdź Cookies i Google Analytics .
$.cookie("nameofcookie", cookievalue, {path: "/", expires: 30});
zmień tę linię na
$.cookie("nameofcookie", cookievalue, {*Path:* "/", expires: 30});
ten projekt działa dobrze.
źródło
Inną możliwą przyczyną jest
path: "/"
, że ponieważ nie używasz zwykłego adresu URL,/
prawdopodobnie nie znaczy to wiele - spróbuj w ogóle nie ustawiać ścieżki.źródło
Jeśli używasz chrominum, jest to polecenie włączenia lokalnych plików cookie
To samo dotyczy chromu
Mam nadzieję, że to ci pomoże!
źródło
Aby obejść ten problem, możesz użyć Tampermonkey z dostępem do plików lokalnych ( Jak dołączyć lokalne strony htm do skryptu Tampermonkey? ). GM_setValue (dane). Użyłem tego do mojej lokalnej strony HTML, której użyłem jako dostosowywalnej alternatywy dla Eksploratora Windows
Ale w rzeczywistości localStorage z odpowiedzi Yuri działa idealnie.
źródło