티스토리 뷰

Server

[Spring] CORS 해결 일지

니용 2021. 5. 4. 13:38
반응형

클라이언트에서 CORS 에 대한 해결 이슈를 작성하면서 이 부분이 서버에도 적용이 되야 하는 부분이 있어 추가로 작성하게 되었습니다. 

서버에서도 CORS를 해결하기 위한 방법이 있는데, 여기서는 Spring Framework v5, Spring Boot 2를 사용하였습니다. 참고한 문서는 아래에 있습니다.

brunch.co.kr/@adrenalinee31/1

spring.io/guides/gs/rest-service-cors/#initial

 

Enabling Cross Origin Requests for a RESTful Web Service

this guide is designed to get you productive as quickly as possible and using the latest Spring project releases and techniques as recommended by the Spring team

spring.io

1. build.gradle 에 httpclient 의존성을 추가합니다.

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    ...
    // CORS
    testImplementation 'org.apache.httpcomponents:httpclient'
    testImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: '2.0.0.RELEASE'
}

test {
    useJUnitPlatform()
}

2. Controller 에서 RequestMapping(PostMapping) 위에 @CrossOrigin 어노테이션을 추가하여 origin url을 설정합니다.

@CrossOrigin(origins = "http://localhost:19006")
@PostMapping("/login")
public LoginUser login(HttpServletRequest request, @RequestBody Map<String, Object> body) throws Exception {
    ...
    return service.login(request, user);
}

이렇게 적용한다면 위의 Request 를 타는 설정에 있어서 어떤 접근이든지 허용하도록 CORS를 설정할 수 있습니다. 

적용 전 에러 발생
적용 후

반응형
댓글
공지사항