CORS( Cross-Origin Resource Sharing )

김창모·2023년 8월 1일
0

Project

목록 보기
8/13

Intro

내가 만든 API는 우리 프로젝트를 위한 API이다.
그런데 이 API 를 우리 프로젝트 프론트에서 요청을 보내면 cors error 를 접하게 된다.
Postman 에서는 분명 잘 동작했는데 왜 그런지 알아보자.

If

만약 내가 만든 API가 어디서든 바로 요청에 대해 응답값을 준다고 하면 다른 사이트에서도
얼마든지 이용이 가능하다.

So

이것을 막기 위해 프로토콜 , 도메인 , 포트번호 등을 검증하여 브라우저는 HTTP 요청을 제한한다.
프로토콜 , 도메인 , 포트번호 중 하나라도 다른경우를 cross-origin 이라고 한다.
그렇다면 우리 프론트 에서는 사용할수 있게 별도의 설정을 해주어야 한다는 것이다.

code

package com.hello.foreverpet.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;


@Configuration
public class CorsConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("*")
                .allowedMethods("GET", "POST", "PUT", "PATCH", "DELETE")
                .allowedHeaders("headers")
                .maxAge(3000);
    }
}

현재는 개발단계이며 프론트 배포가 이루어지지 않았기 때문에 전역으로 모든 URL 과 요청에 응답하게 등록을 해두었다.
모든 개발이 완료될때쯤 다시 이부분을 우리만의 API로 만들기 위한 수정을 할 예정이다.

결론

CORS 에러로 인해 프론트에서 API 응답값을 받지 못했지만
이것은 원하는 곳에만 응답을 해주기 위한 에러가 아니라 해결책 이였다.

0개의 댓글