20

以下代码在 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_odicookie 不存在。但是当我在FF中做同样的事情时,它就是。我们如何使 cookie 在 Chrome 中工作?由 PHP 添加的 cookie 很好,但在 JavaScript 中不是这个,此时我确实需要通过 JavaScript 添加这个 cookie。

4

5 回答 5

53

如果您打开您的代码file:///C:/.../xxx.html而不是http:// localhost/xxx.html. Chrome 不会保存 cookie(因为没有域,也没有 http 通信)file://以防万一。

几个感兴趣的链接:

于 2013-10-02T11:39:12.667 回答
4

Chrome 不会存储从本地文件系统加载的页面中的 cookie。例如,如果您从本地文件系统(例如:file:///C:/Users/deepak.r/Desktop/test.html)访问 chrome 浏览器中的 HTML 文件,则不支持 cookie。

于 2017-09-03T06:59:53.767 回答
0

确保您的地址栏 URL 与域匹配。在 Chrome 中,如果您设置 domain=www.site.com,然后在浏览器中测试您的页面,则缺少 www。它行不通。

于 2014-01-01T19:25:02.420 回答
0

尝试替换这一行:

document.cookie = "c_odi" + "=" + $('#orderdetailid').val() + expires + "; path=/";

有了这个:

document.cookie = "c_odi" + "=" + escape($('#orderdetailid').val()) + expires + "; path=/";

当您尝试读取价值时,您将不得不使用unescape,但当时间到来时您会有所帮助:)

于 2013-03-13T12:56:22.400 回答
0

似乎它对我有用:

在此处输入图像描述

http://jsfiddle.net/rQEnF/3/

如您所见,至少 cookie 会出现在开发工具中。$('#orderdetailid').val()但是,如您所见,我将 jQuery 选择器替换为常量值。该值或包含该值的元素是否有问题?

于 2013-03-13T13:03:32.843 回答