1
Facebook如何在画布页面上为iFrame设置跨域Cookie?
我正在浏览Facebook的文档,以了解画布应用程序,并且遇到了一个示例应用程序:http : //developers.facebook.com/docs/samples/canvas。但是,当我阅读他们的示例时,我对他们在iframe应用程序中使用cookie感到非常困惑。 有点背景故事... 我已经尝试过将iframe用于可嵌入的小部件(与Facebook无关),并且发现一些浏览器(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请求)窗口小部件作为没有建立会话的新请求。我挣扎了,找到了解决方法,使用JSONP和javascript来为foo.com设置cookie ... ... 所以? 好吧,我在看示例iframe Facebook应用程序画布时,我注意到他们的应用程序(运行在runwithfriends.appspot.com上)可以设置cookie u,其中包含当前用户的ID以及runwithfriends的其他一些参数。 appspot.com域。它会在每次请求时发送此Cookie ...并且可以在Chrome和Firefox中使用!WTF?Facebook如何克服Chrome上的跨域Cookie限制? (我现在已经知道答案了,但是我认为这对那些想弄清楚同一件事的人可能会有帮助-我将在下面发布答案。)