相关疑难解决方法(0)

如何在Safari中的iframe中设置外部域的cookie?

来自Apple 开发者常见问题解答

Safari附带了保守的cookie策略,该策略将cookie写入仅限于用户选择("导航到")的页面.

默认情况下,Safari仅允许您直接导航到的网站的Cookie.(即,如果您点击具有该域名的URL的链接).

这意味着,如果您使用带有来自其他网站的网页的iFrame从您自己的网站加载网页,则其他网站无法设置Cookie.(例如,售票处).一旦您直接访问了其他域,另一个站点就能够访问和更改自己的cookie.

如果无法访问其他网站上的代码,我怎样才能使用户体验尽可能不引人注目?

是否有(javascript?)方式检查其他网站的cookie是否已设置,并相应地,如果需要,首先显示与其他网站的直接链接?

更新:

HTML5功能'window.postmessage'似乎是一个不错的解决方案.
有一些jQuery库可能有所帮助,并且与最新的浏览器兼容.
本质上,iFrame文档通过窗口元素与Json一起发送消息.

非常好的Postmessage插件,由daepark,我工作.
另一个jQuery postMessage,由Ben Alman发现,但我没有测试过.

cookies safari iframe

21
推荐指数
2
解决办法
3万
查看次数

iframe,跨域cookie,p3p策略和带有错误的safari:未提供所需的防伪令牌或无效

我不久前问了这个问题,发现IE阻止了iframe中的跨域cookie,除非你设置了p3p策略.到目前为止,p3p修复程序在ie中运行得非常好.但是,现在我们在safari中遇到了同样的错误.

我找到了一篇针对safari 的不同p3p政策的文章.我添加了此代码来设置p3p策略,但我仍然收到请求验证令牌错误.

public static void SetP3PCompactPolicy()
{
    HttpContext current = HttpContext.Current;

    if (current.Request.UserAgent.ToLower().IndexOf("safari") >= 0)
        HttpContext.Current.Response.AddHeader("p3p", "CP=\"IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA\"");
    else
        HttpContext.Current.Response.AddHeader("p3p", "CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"");
}
Run Code Online (Sandbox Code Playgroud)

我不确定这是什么意思,但它不适用于Safari(5).

此外,当我收到服务器错误时,所有信息都会在报告中发送给我,包括所有http标头.p3p标头永远不会出现在这些错误中.我不确定这是否是设计或是否是问题的指标.

cookies safari cross-domain p3p asp.net-mvc-2

12
推荐指数
1
解决办法
1万
查看次数

标签 统计

cookies ×2

safari ×2

asp.net-mvc-2 ×1

cross-domain ×1

iframe ×1

p3p ×1