9

我们在这里使用 iframe 方法构建一个 Facebook 应用程序。要使应用程序正常工作,它需要从 iframe 中设置 cookie。

Safari 默认禁用第三方 cookie,因此我们目前正在将整个浏览器重定向到我们的服务器,设置跟踪会话所需的 cookie,然后再次重定向回 Facebook 应用程序页面。

这种方法有效,而且效果很好。除非有人使用 Firefox 手动禁用第三方 cookie,因为 Firefox 默认启用它们。Safari 可以正常工作,因为它不允许您从 iframe 设置 cookie,但您可以阅读它们。另一方面,Firefox 不允许您读取 cookie,因此它变得有点不可能。

当第三方 cookie 被禁用时,无论如何让 Firefox 将 cookie 发送到外部服务器上的 iframe?

4

4 回答 4

9

当第三方 cookie 被禁用时,无论如何让 Firefox 将 cookie 发送到外部服务器上的 iframe?

不,那很好。禁用 3rd 方 cookie 应该会禁用它们。

于 2009-01-21T16:30:41.567 回答
5

一种技术是使用 JavaScript 在初始页面加载时对隐藏的 iframe 执行后台 POST。一旦 POST 响应成功返回,您就可以设置 cookie。这消除了影响用户体验的需要(强制交互的插页式广告是另一种技术)。更多想法和示例代码在这里: http: //gist.github.com/586182

于 2010-09-22T10:44:41.913 回答
2

是的,当您取消选中第 3 方 cookie 时,它​​不会发送或接受第 3 方 cookie。然而; 复选框是“接受第三方 cookie”,所以看起来它仍然应该 / 发送 / cookie,只是不接受任何新的 cookie ...... wack。

于 2009-11-04T23:15:10.530 回答
0

与其针对浏览器,不如针对行为。

设置 cookie 并在下一个页面加载时使用您的 JS 检查它们。如果它们不存在,请使用替代方法设置它们。

(并确保没有 cookie 的用户不会陷入无限循环)

编辑:嗯,如果 FF 无法读取它们,那可能是个问题。让每个人都通过这个系统怎么样?

于 2009-01-21T15:09:21.203 回答