cookie的JavaScript代码在Chrome中不起作用
以下代码在FF中运行良好:cookie的JavaScript代码在Chrome中不起作用,javascript,google-chrome,cookies,Javascript,Google Chrome,Cookies,以下代码在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并在控制台中使用
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并在控制台中使用
document.cookie
查看cookie时,c_-odi
cookie不存在。但当我在FF中做同样的事情时,它是。我们如何在Chrome中制作饼干?PHP添加的cookie很好,但不是JavaScript中的cookie,此时我确实需要通过JavaScript添加此cookie。尝试替换此行:
document.cookie = "c_odi" + "=" + $('#orderdetailid').val() + expires + "; path=/";
关于这一点:
document.cookie = "c_odi" + "=" + escape($('#orderdetailid').val()) + expires + "; path=/";
当您尝试读取值时,您必须使用
unescape
,但当时间到来时,您将看到:)似乎它对我有效:
正如您所看到的,至少cookie出现在开发工具中。但是,正如您所看到的,我将jQuery选择器
$('#orderdetailid').val()
替换为一个常量值。该值或包含该值的元素是否有问题?如果以file:///C:/.../xxx.html
而不是http://localhost/xxx.html。Chrome不会在文件://
案例中保存cookie(因为没有域,也没有http通信)
几个有趣的链接:
orderdetailid
值只是一个整数。以防万一:)您的Chrome浏览器中是否启用了Cookie?确认这在Chrome 25中也适用。即使我将$('#orderdetailid').val()
保留为未定义,它仍然可以工作。嗯,这很奇怪,那么在Chrome中如何访问cookie呢?当我转到“控制台”——左边的最后一个选项(不是参考资料),然后当我键入document.cookie时,cookie不在那里。我对你链接到我的小提琴也做了同样的操作,但是它在Cookies>fiddle.jshell.net
下,却不在document.cookie
中。尝试在控制台中键入此命令:alert(document.cookie)代码>这可能是一个跨站点问题。在JSFIDLE示例中,设置cookie的脚本是从fiddle.jsshell.net加载的。因此,还为此域设置了cookie。在开发人员控制台中键入document.cookie时,您将只看到域jsfiddle.net的cookie。这是否也是您的场景中的问题?也就是说,创建cookie的脚本的域和应该使用/读取cookie的域必须相同。当您执行document.cookies
时,它会显示您所在域的cookie,该域是jsfiddle.net
,您在fiddle上编写的代码在托管于fiddle.jshell.net
的iframe中运行,因此它不会显示在document.cookie
中。查看适当位置下的参考资料,您可以看到它工作正常。您应该详细说明,这是一个非常弱的答案。为什么只有Chrome要求您使用域和http通信来保存cookie,而IE和Edge不这样做。@ds_secret:我在IE8中测试了这一点,它的行为与Chrome相同-在“file://”上它没有保存cookies,但在“http://”上保存了cookies。另一方面,FF似乎有一些解决方法,它甚至在“file://”上保存cookies。有没有解决方法,因为我的大多数“客户端”都使用Chrome,而不是Edge、IE或Firefox?