X-frame-опции ошибка одинакового происхождения в iframe из другого поддомена с использованием Spring Boot и Angular

#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. Если приведенное выше решение вам понравилось, пожалуйста, примите его как решение и, по возможности, поддержите.