Tag: Facebook的iframe

Facebook如何在canvas页面上设置iFrame的跨域Cookie?

我正在浏览Facebook的关于canvas应用程序的文档阅读,我遇到了一个示例应用程序: http : //developers.facebook.com/docs/samples/canvas 。 然而,当我通读他们的例子时,我对在iframe应用程序中使用cookie非常困惑。 有点背景 我已经玩过使用embedded式小部件(与Facebook无关)的iframe,我发现一些浏览器(Chrome,Safari等)有严格的Cookie政策,不允许在iframe中设置跨域cookie(Firefox,另一方面,允许iframe在iframe中设置跨域cookie)。 例如,如果foo.com有一个带有src="http://bar.com/widget"的iframe,则iframe小部件将无法为bar.com设置任何cookie,因此在iframe中会持续保持状态: bar.com会将小部件中的每个请求(包括ajax请求)解释为新的请求,而无需build立会话。 我挣扎着,find了解决方法,通过使用JSONP和JavaScript为foo.com设置Cookie。 … 所以? 那么,我正在看示例的canvasiframe Facebook应用程序,我注意到他们的应用程序(托pipe在runwithfriends.appspot.com)能够设置一个cookie,当前用户的ID以及一些其他参数runwithfriends .appspot.com域名。 它发送这个cookie与每个请求…它在Chrome和Firefox的作​​品! WTF? Facebook如何绕过Chrome的跨域cookie限制? (我现在已经知道了答案,但是我认为这可能对任何想要找出同样结果的人都有帮助 – 我会在下面发表答案。)