我在同一目录中有两个php页面。这些是edit_page.php
和page.php
。
edit_page.php
有一个所见即所得的编辑器,我可以通过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: *");
我对这个问题有点困惑我以前从未遇到过这类问题。如果有人能指出我正确的方向,那将非常感激。
此外,如果有人能够解释为什么会发生这种情况,那将是非常好的。我的理解是,这会发生在来自交叉原点的页面,例如从不在同一域中的外部源加载内容。但显然这两个文件不仅存在于同一个域中,而且位于同一目录中。
答案 0 :(得分:0)
错误消息显示https://lifting365.com/EUR/beta/admin/page/
已设置X-Frame-Options: sameorigin
。
您似乎在X-Frame-Options: *
上设置了http://lifting365.com/something/edit_page?page_id=1
(这不是标题的有效值,请尝试reading the documentation查看允许的值)。
所以第一个问题是你在错误的网页上设置标题。
您要在框架中显示需要授予权限的页面。包含<iframe>
元素的页面不需要授予自己包含iframe的权限!
你的第二个问题是你的基本方法是错误的。
您不应该尝试降低安全限制,以便可以在http://lifting365.com`上显示https://lifting365.com
的页面。您应该将所有页面移动到HTTPS。
这会:
此外,如果有人能够解释为什么会发生这种情况,那将是非常好的。
使两个起源相同的一个因素是共享URL方案。 http:
和https:
不同。
答案 1 :(得分:0)
好的,现在我觉得很蠢....
我有:
<iframe name="richTextField" id="wysiwyg" src="page?page_id=1"></iframe>
而不是:
<iframe name="richTextField" id="wysiwyg" src="page.php?page_id=1"></iframe>
我认为脑死了