我们正在尝试编写一个联属网络营销跟踪系统。
用户单击服务器 A 上 PHP 脚本的链接,该脚本会放置一些带有跟踪信息的 cookie。然后,该脚本将它们重定向到服务器 B 上的登录页面。一旦用户到达目标页面,就会使用之前设置的 cookie 加载由 PHP 代码生成的 JavaScript。
这在 Safari、FF 和 IE9 上都可以正常工作。
我们在 IE8 上遇到了一个问题,即生成 javascript 的 php 只能发回未使用 name
和 value
以外的任何参数设置的 cookie。已指定过期日期的 Cookie 不会被退回。我们最终通过将 cookie 路径设置为 /
来解决这个问题,即使两个 php 脚本( setter 和 getter )都位于同一路径中。但该修复仅适用于 IE8,IE6 和 IE7 仍然存在同样的问题。
此外,如果我们直接调用 getter 脚本(而不是从服务器 B 上的脚本标记),那么一切都会按预期工作。
我们还尝试将 IE 隐私设置设置为最低设置。
我们如何设置 cookie 的示例
<?PHP
setcookie($key,$val);//this works
//this doesn't
setcookie('COOKIE', json_encode($info), time()+259200000);
最佳答案
在 IE8 中,其他浏览器使用的某些日期格式甚至在 IE7 和 IE9 中也不支持,您可以检查一下日期格式,否则将设置的 cookie 代码粘贴到此处,我们可以为您检查。
关于javascript - 当 JS 在不同域上加载时,IE6、IE7 过期的 Cookie 会丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8604044/