Iframe下Cookie无法保存解决方法

mzwu.com下有一个SetCookie.asp,内容如下:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
Response.Cookies("url")="www.mzwu.com"
%>
<script>
    alert(document.cookie);
</script>

sjkuku.com下有一个Cookie.htm,内容如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Iframe下Cookie测试-Mzwu.Com</title>
</head>

<body>
<iframe src="http://www.mzwu.com/SetCookie.asp"></iframe>
</body>
</html>

访问Cookie.htm结果:



SetCookie.asp中保存的cookie丢失了,双击IE状态栏隐私报告图标:



可以看到,原因是IE的隐私策略阻止了来自mzwu.com域的cookie,在SetCookie.asp中加入P3P头可解决问题:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
Response.AddHeader "P3P", "CP=CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"
Response.Cookies("url")="www.mzwu.com"
%>
<script>
    alert(document.cookie);
</script>



后记:从表面现象来看,似乎是实现了B域在A域下存取cookie,但进一步测试发现,这样生成的cookie仍只能在B域页面中读取,A域名页面是无法直接读取的,同样,A域生成的cookie在B域页面中也一样不能读取。

上一篇: VB制作BHO
下一篇: GZipStream压缩/解压字符串(C#)
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
最新日志:
评论: 0 | 引用: 0 | 查看次数: 11057
发表评论
登录后再发表评论!