我有一个像这样的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 本身包含页面更清晰的同源情况,所以我不知道我是否遗漏了一些东西。