解决Safari对第三方域在iframe下Cookie不能保存问题

问题描述
Safari浏览器默认的Cookie设置是仅接受当前浏览的站点。也就是说当你浏览www.a.com的时候,其中有个iframe是www.b.com,那么a站点cookie会被接受,但是b站点的cookie将被屏蔽。
在其他浏览器下也有类似的默认设置,但是类似IE等可以通过Header中P3P头的设置告知浏览器接受第三方Domain的Cookie,方法可参考:link。简单的说就是个协议对浏览器说我是好人,请允许我进行这些操作之类bhlabhla。
但是Safari是无效的=-=网上搜了一下在Stackoverflow上看到一个解决方案。
解决原理
返回一个页面,其中运行一段代码生成一个iframe和一个form,将form的action指向服务端某页面,target指向iframe。伪造一个用户submit操作,在这个submit操作中产生一个Cookie,iframe onload后刷新重新刷新主页面即可使用伪造的用户操作产生的cookie。
开源项目:
近期评论