websocket과 stompJs를 연결하고, roomId를 받아오려고 할 때, 백엔드 측에서 response-header의 location filed로
network tap에서 보면 location으로 값이 오는 걸 확인 할 수 있었다!
그런데, post 요청으로 보낸 response.data를 콘솔로 찍어보면,
201 post 성공코드와 함께 location 값을 찾아봤지만,
data - headers안에 location filed가 없는것이다! ㅇ0ㅇ
코드를 잘못 썼나 싶어서 여러번 검토해보던중, 구글링을 해보니 나와 똑같은 상황의 분이 해결방안으로 cors 응답 설정시 서버측에서 exposedHeaders에 location header를 지정해 주면 된다는 글을 보았다!
서버에서 아래와 같은 예시와 비슷하게 설정해주면 된다.
@Configuration
public class WebConfig implements WebMvcConfigurer {
public static final String ALLOWED_METHOD_NAMES = "GET,HEAD,POST,PUT,DELETE,TRACE,OPTIONS,PATCH";
@Override
public void addCorsMappings(final CorsRegistry registry) {
registry.addMapping("/api/**")
.allowedMethods(ALLOWED_METHOD_NAMES.split(","))
.exposedHeaders(HttpHeaders.LOCATION); // exposed header 지정
}
}
왜 발생하느냐 하면, cors 응답을 활성화 해주는 과정에서 기본적으로 사용 가능한 헤더 중 일부만을 노출시키고, 노출 시키고 싶은 헤더가 더 많은 경우 추가적으로 지정하여 설정해줘야 되는 것 같다.