pae*_*dnt 6 cookies iframe firefox
我有一个像这样的html结构
<html>
<body>
<iframe srcdoc="HTMLDOC"></iframe>
<body>
</html>
Run Code Online (Sandbox Code Playgroud)
其中 HTMLDOC 是一个 HTML 文档,其中包含一些<img>标签,这些标签显示我的服务器中的图像,用户必须经过身份验证才能看到这些图像。
这在 Chrome 上完美运行,但在 Firefox 上尝试时,浏览器发出的获取这些图像的请求不会发送用户的 cookie,因此不会下载图像(因为服务器认为用户未经身份验证)。
如果我将 iframe 转换为“经典”iframe,如下所示:
<iframe src="URL INSIDE MY SERVER"></iframe>
Run Code Online (Sandbox Code Playgroud)
其中 URL INSIDE MY SERVER 是一个端点,它提供相同的 HTMLDOC,它在 Chrome 和 Firefox 中都可以工作,在请求中发送适当的 cookie 以获取图像。
我也尝试sandbox="allow-same-origin allow-top-navigation allow-scripts" 使用 srcdoc 将参数添加到 iframe,但无济于事。
奇怪的是,如果这是同源情况,我想不出比 HTML 本身包含页面更清晰的同源情况,所以我不知道我是否遗漏了一些东西。
小智 0
我不确定 Chrome 和 Firefox 之间的实现是否存在差异,但我使用一些 DOM 操作来绕过这个问题:
<html>
<body>
<iframe onload="fillIframe(this);"></iframe>
</body>
</html>
<script type="text/javascript">
function fillIframe(o) {
o.contentWindow.document.body.innerHTML = "HTMLDOC";
}
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
770 次 |
| 最近记录: |