下面的代码在FF中工作正常:
var date = new Date();
date.setTime(date.getTime() + (1 * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toGMTString();
document.cookie = "c_odi" + "=" + $('#orderdetailid').val() + expires + "; path=/";
但不是Chrome。当我使用Chrome浏览器并在控制台中执行document.cookie
以查看cookie时,c_odi
cookie不存在。但是当我在FF中做同样的事情时,它就是了。如何让cookies在Chrome中工作?PHP添加的cookie是好的,但不是JavaScript中的这个,此时我确实需要通过JavaScript添加这个cookie。
6条答案
按热度按时间gev0vcfq1#
如果您以
file:///C:/.../xxx.html
而不是http:// localhost/xxx.html
打开代码,则可能会出现此问题。Chrome在file://
的情况下不保存cookie(因为没有域和http通信)。几个感兴趣的链接:
8yparm6h2#
Chrome不存储从本地文件系统加载的页面的cookie。例如,如果您在Chrome浏览器中从本地文件系统(例如:file:///C:/Users/deepak.r/Desktop/test.html),不支持cookie。
jutyujz03#
尝试替换此行:
用这个
当你试图读取值时,你必须使用
unescape
,但当时间到了,你会注意到:)emeijp434#
似乎对我很有效:
http://jsfiddle.net/rQEnF/3/
如您所见,至少cookie显示在开发工具中。但是,我将jQuery选择器
$('#orderdetailid').val()
替换为常量值,如您所见。是该值或包含该值的元素有问题吗?czq61nw15#
确保您的地址栏url与域匹配。在Chrome中,如果您设置domain= www.site.com,然后在浏览器中测试您的页面,则会遗漏www.那是行不通的
1qczuiv06#
当在chrome中以file://打开HTML文件时,作为一种解决方法,使用会话存储而不是cookie。当然,会话存储不具有与cookie完全相同的功能,但在某些情况下可能会有所帮助。
sessionStorage.setItem("some_property", "true"); sessionStorage.getItem("some_property");