我正在使用jQuery Cookie插件(download和demo以及source code with comments)来设置和读取Cookie。我正在本地计算机上开发页面。
以下代码将在FireFox 3,IE 7和Safari(PC)中成功设置cookie。但如果浏览器是谷歌浏览器并且该页面是本地文件,则无效。
$.cookie("nameofcookie", cookievalue, {path: "/", expires: 30});
我所知道的:
因此,只有对于本地文件上的Google Chrome
可能的原因:
任何人都可以确认并确定根本原因吗?
答案 0 :(得分:92)
Chrome不支持本地文件的Cookie(或者像Peter Lyons所提到的,localhost *),除非您使用--enable-file-cookies标志启动它。您可以在http://code.google.com/p/chromium/issues/detail?id=535上阅读有关它的讨论。
*如果直接使用本地IP地址(127.0.0.1),Chrome 支持Cookie。所以在localhost的情况下,这可能是一个更容易的解决方法。
答案 1 :(得分:6)
对于本地应用程序,请在Chrome中使用localStorage: http://people.w3.org/mike/localstorage.html
答案 2 :(得分:5)
我遇到了一些问题并解决了这个可怕的解决方案。 一起使用商店和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");
我知道这不是完美的解决方案,但对我有用
答案 3 :(得分:4)
答案 4 :(得分:3)
我遇到了同样的问题,请尝试使用localhost的IP地址。例如,“http://127.0.0.1/yoursite/”
答案 5 :(得分:3)
请查看Cookies & Google Analytics。
$.cookie("nameofcookie", cookievalue, {path: "/", expires: 30});
将此行更改为
$.cookie("nameofcookie", cookievalue, {*Path:* "/", expires: 30});
这个项目工作正常。
答案 6 :(得分:2)
另一个可能的原因是path: "/"
,因为您没有使用普通的网址,/
可能没什么意义 - 尝试不设置路径。
答案 7 :(得分:0)
如果您使用chrominum,则这是启用本地cookie的命令
chromium-browser --enable-file-cookies
对于chrome
来说是一回事希望这对你有帮助!
答案 8 :(得分:0)
作为解决方法,您可以使用Tampermonkey来访问本地文件(How to include Local htm pages in a Tampermonkey script?) 这样,您将使用Tampermonkey的存储,并能够通过函数GM_getValue(data)和GM_setValue(data)设置和获取数据。我将其用于本地HTML页面,该页面用作Windows资源管理器的可自定义替代
但是实际上localStorage中的Yuri's answer很完美。