[Web🌐] Refused to display '' in a frame because it set 'X-Frame-Options' to 'sameorigin'

환경

A Spring 프로젝트의 iframe에서 B Spring 프로젝트의 화면을 호출한다.

<iframe id="mainExternalFrame" src="B 프로젝트 화면 url"> </iframe>

 

에러 현상

iframe에서 페이지가 나타나지 않고 Refused to display '' in a frame because it set 'X-Frame-Options' to 'sameorigin' 오류가 나타난다.

 

해결

- 보안을 위하여 다른 사이트에서 로드할 때 허용 범위가 지정되어 있다.

  • 호출하는 사이트(A 프로젝트)는 호출 당하는 사이트(B 프로젝트)에서 막은거라 할 수 있는 일은 없다.
  • 호출 당하는 사이트(B 프로젝트)에서 X-Frame-Options 설정을 해준다.
    • DENY: 시도하는 사이트에 관계없이 페이지를 프레임에 표시 X
    • SAMEORIGIN: 페이지는 모든 조상 프레임이 페이지 자체와 동일한 출처인 경우에만 표시

 

-  호출당하는 입장인 B 프로젝트에서 응답 헤더에 X-Frame-Options를 세팅해서 보내주어야 한다.

- httpResponse.setHeader("X-Frame-Options", "allow-from A프로젝트 IP주소:포트번호");

httpResponse.setHeader("X-Frame-Options", "allow-from http://localhost:8080");