我有6个iframe来自同一个域,但有不同的url和子目录。他们都使用html标题“set-cookie”设置了一个具有相同名称但值不同的cookie。我需要将他们的饼干分开,以免彼此干扰。
这是一个示例代码。感谢
<html>
<head>
<style type="text/css">
body, table
{
margin: 0; padding: 0; height: 100%; width: 100%; overflow: hidden; scrolling=no; position:absolute;;
}
iframe
{
height: 100%; width: 100%;
}
</style>
</head>
<body>
<table>
<tbody>
<tr>
<td>
<iframe id="1" src="http://example.com/1"></iframe>
</td>
<td>
<iframe id="2" src="http://example.com/2"></iframe>
</td>
<td>
<iframe id="3" src="http://example.com/3"></iframe>
</td>
</tr>
<tr>
<td>
<iframe id="4" src="http://example.com/4"></iframe>
</td>
<td>
<iframe id="5" src="http://example.com/5"></iframe>
</td>
<td>
<iframe id="6" src=http://example.com/6></iframe
</td>
</tr>
</tbody>
</table>
</body>
请注意,我无权访问服务器/域。
答案 0 :(得分:2)
Cookie包括a path attribute:
如果属性名称不区分大小写匹配字符串“Path”, 用户代理必须按如下方式处理cookie-av。
如果属性值为空或者是第一个字符 attribute-value不是%x2F(“/”):
让cookie-path成为默认路径。
否则:
让cookie-path成为属性值。
使用属性将属性附加到cookie-attribute-list Path的名称和cookie路径的属性值。
Cookie是only sent if the cookie path matches the URL path。
配置您的服务器,使其为帧中的6件事物中的每一件提供不同的路径。
答案 1 :(得分:1)
您的用例究竟是什么?因为这对我来说听起来有点奇怪......但是,这很容易;只是命名你的cookie!
document.cookie = 'frameOne=foo';
document.cookie = 'frameTwo=bar';
并访问特定框架中所需的cookie。
正如@Quentin所说; 不怀疑这是安全的。如果您希望单独进行身份验证,请使用不同的域,多登录系统或其他任何内容。然而;我希望一个用户登录6次似乎很奇怪。