Допустим, у меня есть веб-почта 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)? Или можно как-то встроить веб-почту?
Вам необходимо отредактировать:
/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.