【问题标题】:On Symfony 2, losing session with iframe on IE在 Symfony 2 上,在 IE 上失去与 iframe 的会话
【发布时间】:2011-11-24 17:05:06
【问题描述】:

我正在使用 Symfony 2 制作一个 facebook 应用程序。很多人都知道 IE 在包含 iframe 时会丢失会话!

这个问题可以通过 header('P3P: CP="CAO PSA OUR"'); 解决

所以我的问题是发送 header('P3P: CP="CAO PSA OUR"');在 Symfony 2 上。

我在我的行动中尝试了这个:

$response = new Response($content);     
$response->headers->set('P3P:CP', 'CAO PSA OUR');
return array($response);

如果没有成功,会话就会丢失!!!

有这个想法吗?

【问题讨论】:

    标签: facebook internet-explorer session iframe symfony


    【解决方案1】:

    我找到了解决办法!

    只需替换这个:

    $response->headers->set('P3P:CP', 'CAO PSA OUR'); 
    

    作者:

     $response->headers->set('P3P', 'CP="CAO PSA OUR"');
    

    或者更好,就像 Wojciech Bańcer 所说:

    $response->headers->set('P3P', 'CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
    

    事实上,你必须在第一个参数中传递 : 之前的所有单词,其余的在第二个参数中!

    【讨论】:

      【解决方案2】:

      IE 可能由于各种原因丢失会话/cookie。

      您命名的最常见的一个 - 缺少 P3P 标头(您应该使用一些 Firebug 工具检查,以确保您正在发送它)。

      第二个原因是域名中的下划线(例如 my_app.something.com)。这是因为名称中的下划线违反 RFC:http://www.ietf.org/rfc/rfc2396.txt。如果我没记错的话(我在 2 年前遇到过类似的错误),也可能是您的 symfony cookie 名称有下划线。

      我听说的第三个最常见的原因与时间有关,但我自己从未经历过。你可以在这篇文章中读到它:http://genotrance.wordpress.com/2006/11/23/session-cookies-rejected-by-internet-explorer/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-04
        • 1970-01-01
        • 2017-04-19
        • 1970-01-01
        • 1970-01-01
        • 2014-08-14
        • 2021-06-09
        • 1970-01-01
        相关资源
        最近更新 更多