gpt4 book ai didi

iframe - 嵌入 Liferay 站点,因为 iframe 在外部站点上不起作用

转载 作者:行者123 更新时间:2023-12-03 20:18:40 27 4
gpt4 key购买 nike

我有一个包含 Portlet 的 Liferay 页面。我试图将此页面作为 iframe 嵌入到不在 Liferay 中的外部站点中,但它在控制台中给出了以下错误:

Refused to display 'https://example.com' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'



我正在使用如下所示的 html iframe 标签来嵌入它:
<iframe allowfullscreen="" frameborder="0" height="400" src="https://example.com" style="border:0" width="500"></iframe>

在此线程之后,我尝试将“&output=embed”放在 URL 的末尾,但它不起作用: Refused to display in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'

我不确定是否需要更改 Liferay 端的设置或任何代码才能使其工作。知道是什么导致了这个问题,我该如何解决这个问题?

最佳答案

X-Frame-options响应头用于防止clickjacking .默认情况下,Liferay 中的所有请求都将此 header 设置为 DENY对于所有外部 URL,即 Liferay 站点不能从具有相同域的 Liferay 站点以外的任何其他站点 iFrame 或嵌入到 iframe 中。

假设您使用的是 Liferay 版本 6.2.x,您可以有两种方法来允许 Liferay 被 iFrame:

方法一

禁用该属性 http.header.secure.x.frame.options 到portal-ext.properties:

http.header.secure.x.frame.options=false

默认情况下,这是 true .

方法二(推荐)

将页面的 URL 添加到属性 http.header.secure.x.frame.options.* portal-ext.properties这样只有特定的 URL 才能嵌入 iframe 而不是整个站点。

哪里 * 应替换为任何正整数值。

一些示例,请注意每个 URL 都在一个单独的属性中:
http.header.secure.x.frame.options.1=/web/guest/home
http.header.secure.x.frame.options.2=/myPortletPageToBeIframed
http.header.secure.x.frame.options.10=/group/mySite/MyPageInIframe

推荐使用第二种方法,因为它只允许对某些页面进行 iFramed,从而降低其他页面被点击劫持的风险。

关于iframe - 嵌入 Liferay 站点,因为 iframe 在外部站点上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34886413/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com