회원가입 페이지에서 중복확인 버튼을 눌렀을 때 자바스크립트에서 중복인지 아닌지를 확인하는 함수에서 CORS 에러가 발생하였다.
CORS란 한 도메인 또는 Origin의 웹 페이지가 다른 도메인 (도메인 간 요청)을 가진 리소스에 액세스 할 수 있게하는 보안 메커니즘이다.
HTML은 기본적으로 Cross-Origin 정책을 따르지만 XMLHttpRequest, Fetch API 등 script 태그 내 기본적으로 Same-Origin 정책을 따른다.
즉 자바 스크립트는 서로 다른 도메인에 대한 요청을 보안상 제한한다. (브라우저 기본 설정은 하나의 서버 연결만 허용)
이로 인해 자바스크립트를 통해 중복확인을 할 때 오류가 났던 것이다.
Spring boot 프로젝트 내에 filter 디렉토리를 만들어 CorsFilter 클래스를 만들고
다음과 같은 코드를 작성해준다.
이때 Filter는 import시 import javax.servlet.Filter 로 import를 해야한다.
이러한 코드를 작성하고 빌드하고 실행해주니 cors에러가 나지 않았다.
ec2에서 해당 프로젝트로 디렉토리를 옮기고 nohup java -jar build/libs/grow_site-0.0.1-SNAPSHOT.jar & > /dev/null을 입력한다.
서버를 종료하기 위해서는 ps -ef | grep {실행시킨 파일이름:grow_site-0.0.1-SNAPSHOT.jar}을 통해 pid를 알아내고
sudo kill -9 {알아낸 PID}를 입력하면 서버를 중단할 수 있다.