不久前我问了这个问题,发现 IE 会阻止 iframe 中的跨域 cookie,除非你设置了p3p policy。到目前为止,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\"");
}
我不确定这意味着什么,但它不适用于 Safari (5)。
此外,当我收到服务器错误时,所有信息都会在报告中发送给我,包括所有 http 标头。p3p 标头永远不会出现在这些错误中。我不确定这是设计使然,还是表明问题正在发生。