#angular #spring-boot #iframe
#angular #spring-boot #iframe
Вопрос:
Я получаю сообщение «Отказано в отображении » ‘ во фрейме, потому что он установил для ‘X-Frame-Options’ значение ‘sameorigin'» при попытке показать iframe из Spring Boot API, который находится в том же домене, что и мое приложение Angular, но в другом поддомене (например app.domain.com , api.domain.com).
Почему он не рассматривает один и тот же домен?
Ответ №1:
app.domain.com , api.domain.com оба имеют один и тот же домен, но поскольку поддомен отличается, это означает, что у него другое происхождение, и поэтому Spring security не допускает этого по умолчанию.
Вы можете добавить пользовательский заголовок для решения проблемы, как показано ниже:
http
.headers().frameOptions().disable()
.addHeaderWriter(
new StaticHeadersWriter("X-FRAME-OPTIONS", "ALLOW-FROM app.domain.com"));
Комментарии:
1. Но этот пользовательский заголовок не полностью поддерживается браузерами, не так ли?
2.Это хорошо поддерживается во всех браузерах. Для справки смотрите следующие ссылки developer.mozilla.org/en-US/docs/Web/HTTP/Headers /… lambdatest.com/X-Frame-Options-HTTP-header
3. Если приведенное выше решение вам понравилось, пожалуйста, примите его как решение и, по возможности, поддержите.