#firefox #cookies #iframe
#firefox #файлы cookie #iframe
Вопрос:
У меня есть такая структура html
<html>
<body>
<iframe srcdoc="HTMLDOC"></iframe>
<body>
</html>
где HTMLDOC — это документ HTML, в котором есть некоторые <img>
теги, отображающие изображения на моем сервере, для просмотра которых пользователь должен пройти проверку подлинности.
Это работает безупречно в Chrome, но при попытке в Firefox запросы, сделанные браузером для извлечения этих изображений, не отправляют файлы cookie пользователя, и, следовательно, изображения не загружаются (поскольку сервер считает, что пользователь не аутентифицирован).
Если я преобразовываю iframe в «классический» iframe, например:
<iframe src="URL INSIDE MY SERVER"></iframe>
где URL ВНУТРИ МОЕГО СЕРВЕРА является конечной точкой, которая обслуживает тот же HTMLDOC, он работает как в Chrome, так и в Firefox, отправляя соответствующие файлы cookie в запросах на получение изображений.
Я также пытался добавить параметр sandbox="allow-same-origin allow-top-navigation allow-scripts"
в iframe с помощью srcdoc, но безрезультатно.
Что странно, так это то, что если это ситуация с тем же источником, я не могу придумать более четкого того же происхождения, что и страница в самом HTML, поэтому я не знаю, не упускаю ли я что-то.
Комментарии:
1. Вы нашли решение для этого? Сейчас я столкнулся с той же проблемой. кажется настолько глупым, что такого рода настройки не имеют одинакового происхождения
Ответ №1:
Я не уверен, есть ли различия в реализации между 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>