상세 컨텐츠

본문 제목

[swagger] Failed to fetch. Possible Reasons: CORS, Network Failure, URL scheme must be "http" or "https" for CORS request

🍜개발자라면/에러 - 담에는 빠르게 헤어지자🎁

by :부셔져버린개발자 2024. 12. 31. 14:18

본문

상황

운영 서버에서 SWAGGER로 요청보냈더니 CORS 오류가 발생했다. 

Curl 명령어 확인해보니 https가 아닌 http 로 요청이 갔음을 확인할 수 있었다.

 


발생 원인

실행하고 있는 서버는 HTTPS 인데 HTTP로 요청을 보내서 발생한 문제이다.

 

CORS에 대해 정리 잘 해두신 블로그 첨부)

https://inpa.tistory.com/entry/WEB-%F0%9F%93%9A-CORS-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95-%F0%9F%91%8F

 

🌐 악명 높은 CORS 개념 & 해결법 - 정리 끝판왕 👏

악명 높은 CORS 에러 메세지 웹 개발을 하다보면 반드시 마주치는 멍멍 같은 에러가 바로 CORS 이다. 웹 개발의 신입 신고식이라고 할 정도로, CORS는 누구나 한 번 정도는 겪게 된다고 해도 과언이

inpa.tistory.com

 


해결방안

 

Swagger 설정을 바꿔주면 된다 

 

serverUrl을 active profile (local, prod 마다 다르게 설정하도록 하였다)

@Configuration
public class SwaggerConfig {

    @Value("${swagger.url}")
    private String serverUrl;

    @Bean
    public OpenAPI springOpenApi() {
        return new OpenAPI()
            .components(createComponents())
            .addServersItem(createServer());
    }

    private Server createServer() {
        return new Server().url(serverUrl);
    }
}

 

 

 

 

 

728x90

관련글 더보기