在设置 cookie 时,我面临不同浏览器的问题,并且从 java 脚本中获取相同的信息。
- 在 Firefox 中一切正常,即设置 cookie 并在 6 个月后过期。
- 但是在 IE cookie 中确实设置了但随着浏览器会话过期。
- 对于 Chrome 的 cookie 并不是全部读取和设置。
我已经尝试了很多实验,但我无法得到我预期的解决方案。我究竟做错了什么?
在设置 cookie 时,我面临不同浏览器的问题,并且从 java 脚本中获取相同的信息。
我已经尝试了很多实验,但我无法得到我预期的解决方案。我究竟做错了什么?
我认为这部分看起来不正确:
// Store the cookie
Cookie.prototype.store = function () {
var cookieval = "";
for(var prop in this) {
// ...
cookieval += prop + ':' + escape(this[prop]);
};
// ...
};
基本上,这会遍历每个全局 Javascript 变量(与 cookie 无关)并将它们添加到 cookie 值中。这真的是你想要的吗?当我在 Chrome 中运行以下命令时,请查看输出:
这将是一个巨大的饼干。
除此之外,您看到的错误看起来像是同源策略的问题。除非外部域具有特殊设置,否则您不能从页面域之外的域引用 Javascript。谷歌有一些特殊设置的服务器,所以如果你不想在你的服务器上托管 jquery 文件,你可以使用这个 URL:
https://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
不过,老实说,您似乎有很多问题需要处理(跨域问题、未定义的 jQuery、跨浏览器兼容性)。您可能应该尝试简化您的代码,看看它是否适用于简单的情况。与其将所有 Javascript 变量存储在 cookie 中,不如看看您是否可以只在 cookie 中存储一个简单的字符串值,并查看您的代码是否与跨浏览器兼容。如果可行,请尝试添加过期时间,然后添加域/路径等。这样您就可以一次专注于一个问题。