У меня есть две страницы PHP в одном каталоге. Это edit_page.php
а также page.php
,
edit_page.php
есть редактор wysiwyg, где я могу редактировать содержимое другой страницы через iframe. источник для iframe page.php
с запросом ?page_id=XXX
,
Когда я иду в page.php?page_id=XXX
Я вижу следующие заголовки:
Однако, когда я иду в edit_page.php?page_id=XXX
Я вижу следующие ошибки в консоли:
Я попытался поместить заголовки на страницу, отправив запрос только для смеха, хотя я знаю, что он делает запрос, а не отправляет заголовок ответа …. стоит попробовать: P
Заголовки, которые я отправляю:
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST");
header("Access-Control-Allow-Headers: Content-Type");
header("X-Frame-Options: *");
Я немного застрял с этим, я никогда не сталкивался с такой проблемой раньше. Если кто-нибудь может указать мне в правильном направлении, это было бы очень признательно.
Также, если кто-то может объяснить, почему это происходит в первую очередь, это было бы здорово. Насколько я понимаю, это будет происходить со страницами из разных источников, например загрузка контента из внешнего источника не в том же домене. Но очевидно, что эти два файла находятся не только в одном домене, но и в одном каталоге.
Сообщение об ошибке говорит, что https://lifting365.com/EUR/beta/admin/page/
установил X-Frame-Options: sameorigin
,
Вы, кажется, пытаетесь установить X-Frame-Options: *
(который не является допустимым значением для заголовка, попробуйте чтение документации чтобы увидеть, какие значения разрешены) на http://lifting365.com/something/edit_page?page_id=1
,
Итак, первая проблема в том, что вы устанавливаете заголовки на неправильной странице.
Это страница, которую вы хотите отобразить в рамке это должно дать разрешение. Страница с <iframe>
элемент в нем не должен давать себе разрешение на включение iframe!
Ваша вторая проблема в том, что ваш базовый подход к этому неверен.
Вы не должны пытаться снизить ограничения безопасности, чтобы страница https://lifting365.com
может отображаться на http://lifting365.com`. Вы должны двигаться все страницы в HTTPS.
Это будет:
Также, если кто-то может объяснить, почему это происходит в первую очередь, это было бы здорово.
Одним из факторов, необходимых для того, чтобы два источника были одинаковыми, является схема общих URL. http:
а также https:
разные.
Хорошо, теперь я чувствую себя глупо ….
Я имел:
<iframe name="richTextField" id="wysiwyg" src="page?page_id=1"></iframe>
Вместо:
<iframe name="richTextField" id="wysiwyg" src="page.php?page_id=1"></iframe>
Я думаю, что мозг умирает