반응형
위는 작성한 Controller 코드 중 일부분이다. Content-Disposition 헤더를 추가하여 파일명을 붙여보내는 메소드이고, postman으로 테스트해볼때는 문제가 없었다.
그런데, 프론트 작업을 하는 친구로부터 제대로 전달되지 않는다고 얘기를 들었다. 해당 header값이 없다고한다.
뭐지?? 분명 postman으로 올바르게 동작하는 걸 확인했는데...
곧장 프론트 작업하는 친구에게 달려가 같이 확인해보았다.
함께 브라우저(chrome)로 확인해본 결과 올바르게 전달이 되는 것을 확인할 수 있음에도 프론트 코드에서 해당 header를 찾을 수 없다는 오류가 지속적으로 발생했다. 여기서 1차 멘붕.
관련한 여러 키워드로 검색해보니 CORS 문제라고 하는데... 나는 분명 처리를 해줬다고 생각했었다. 2차 멘붕
더 찾아본 결과.. CrossOrigin 어노테이션의 properties 중 exposedHeaders라는 놈이 있었다. 이놈에 대한 이슈였다.
기본적으로 브라우저가 접근 가능한 헤더는 다음 6개와 같다.
- Cache-Control
- Content-Language
- Content-Type
- Expires
- Last-Modified
- Pragma
이외에 다른 헤더를 추가하여 접근하고 싶을 때는 exposedHeaders 값으로 해당 헤더의 key를 추가해주는 작업을 해주어야만 올바르게 작동한다.
오늘의 삽질 끝.
참고링크 - howtodoinjava.com/spring5/webmvc/spring-mvc-cors-configuration/
반응형
'ahnnyung , > Spring Rest API' 카테고리의 다른 글
[Spring Rest API] @CrossOrigin을 줬는데도 CORS 에러가 발생할 때 (CORS preflight 오류) (2) | 2020.11.26 |
---|---|
[Spring Rest API] REST API 설계 규칙 - 2 (1) | 2020.11.25 |
[Spring Rest API] REST API 설계 규칙 - 1 (1) | 2020.11.25 |