我们正在使用iframe方法在工作中构建Facebook应用程序。要使应用程序正常工作,需要在iframe中设置cookie。
Safari默认禁用第三方cookie,因此我们目前正在将整个浏览器重定向到我们的服务器,设置跟踪会话所需的cookie,然后再次重定向回Facebook应用程序页面。
这种方法有效,效果很好。除非有人使用Firefox手动禁用第三方cookie,否则Firefox默认启用它们。 Safari的工作原因是它不允许你从iframe设置cookie,但你可以阅读它们。另一方面,Firefox不允许你阅读cookie,因此它变得有点不可能。
当第三方cookie被禁用时,有没有让Firefox将cookie发送到外部服务器上的iframe?
答案 0 :(得分:9)
当第三方cookie被禁用时,有没有让Firefox将cookie发送到外部服务器上的iframe?
没有。这很好。禁用第三方Cookie应禁用。
答案 1 :(得分:5)
一种方法是使用JavaScript在初始页面加载时对隐藏的iframe执行后台POST。一旦POST响应成功返回,您就可以设置cookie。这消除了影响用户体验的需要(强制交互的插页式广告是另一种技术)。这里有更多想法和示例代码:http://gist.github.com/586182
答案 2 :(得分:2)
是的,当您取消选中第三方Cookie时,它不会发送或接受第三方Cookie。然而;复选框是“接受第三方cookie”,所以看起来它似乎仍然/发送/ cookie,只是不接受任何新的... wack。
答案 3 :(得分:0)
不是定位浏览器,而是定位行为。
使用JS设置cookie并在下一页加载检查它们。如果它们不存在,请使用替代方法设置它们。
(并确保没有cookie的用户无法进入无限循环)
编辑:嗯,如果FF无法读取它们可能是一个问题。如何通过这个系统发送所有人?