ajax로 아이디 값을 입력받을 때마다 서버에 전송해서 boolean 값을 받는다.
boolean existsByUsername(String id);
를 이용해서 데이터베이스에서 아이디 중복 체크를 했다.
문제점
- 서버에서 넘긴 flag는 boolean이다. 프런트단에서 출력하니까 엉뚱하게 회원가입 html 소스 코드가 나타난다.
- '/user/idCheck'으로 가야하는데 안 가는 것 같다. 로그가 안 찍힌다.
✨ 해결
원인은 스프링시큐리티였다.
홈과 회원가입 페이지만 접근을 허용해서 '/user/idCheck'가 차단된 것이다.
post 방식으로 요청한 '/user/idCheck'에 가지 않고, '/user/joinForm'에 가서 return 값이 회원가입 html 소스 코드다.
로그인 안 해도 접근할 수 있게 해주니까 해결!!!!!!
아무리 컨트롤러랑 프런트단을 수정하고 확인해도 안 되었던 문제였다.
아래는 WebSecurityConfig 클래스의 configure 메소드 내에서 수정한 부분이다.
// "/user/idCheck" 추가
.antMatchers("/", "/user/joinForm", "/user/idCheck").permitAll()
반응형