假设我有一个可在 访问的 Zimbra 网络邮件https://mail.example.com
。我还有一个网络应用程序https://app.example.com
。我试图在其中一个应用程序页面上嵌入网络邮件:
<iframe src="https://mail.example.com"></iframe>
但是,当我转到应用程序页面时出现以下错误(Firefox)Load denied by X-Frame-Options: https://mail.example.com/ does not permit cross-origin framing
:。
如何在 Zimbra 服务器/nginx 上启用跨源框架(最好仅适用于 app.example.com)?或者是否可以以其他方式嵌入 Web 邮件?
答案1
您需要编辑:
/opt/zimbra/jetty/etc/zimbra.web.xml.in
修改设置标头过滤器。查找:
<filter-name>Set Header Filter</filter-name>
<filter-class>com.zimbra.webClient.filters.SetHeaderFilter</filter-class>
部分并添加以下参数:
<init-param>
<param-name>allowInFrame</param-name>
<param-value>true</param-value>
</init-param>
之后使用以下命令重新启动 Zimbra:
zmcontrol restart
缺点是您需要在每次更新 Zimbra 软件时检查这些修改是否仍然存在。