Spring Security를 활용하여 JWT를 구현하다 보니 html과 붙지 않는 오류를 발견했다 postman으로 값을 보낼 시 해쉬코드 암호화 하여 mysql에 잘 저장되었지만 local환경에서 실행해보니 Request method 'GET' not supported라는 에러를 발견했다.
에러의 구문은 다음과 같다.
2023-01-27 18:53:14.566 ERROR 19308 --- [nio-8080-exec-3] c.e.a.handler.GlobalExceptionHandler : error
org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'GET' not supported
at org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.handleNoMatch(RequestMappingInfoHandlerMapping.java:253) ~[spring-webmvc-5.3.22.jar:5.3.22]
하지만 코드 내용 상에서는 PostMapping이었고 코드도 아래와 같았다. Spring에서도 Post로 보내고 있고 Ajax에서도 Post로 받고 있었다.
@ApiOperation("회원 가입 기능")
@PostMapping("/join")
public Long join(@RequestBody MemberJoinRequestDto requestDto) {
return memberService.join(requestDto);
}
function sign_up() {
// 회원 가입시 아이디, 비밀번호1,2, 이메일, 이름 정보 받기
let username = $("#input-username").val()
let password = $("#input-password").val()
let password2 = $("#input-password2").val()
let email = $("#input-email").val()
let nickname = $("#input-nickname").val()
// 중복 검사 했는지 안 했는지 is-success가 있으면 아이디 중복 확인한거다
if ($("#help-id").hasClass("is-danger")) {
alert("아이디를 다시 확인해주세요.")
return;
} else if (!$("#help-id").hasClass("is-success")) {
alert("아이디 중복확인을 해주세요.")
return;
}
if ($("#help-nickname").hasClass("is-danger")) {
alert("닉네임을 다시 확인해주세요.")
return;
} else if (!$("#help-nickname").hasClass("is-success")) {
alert("닉네임 중복확인을 해주세요.")
return;
}
if ($("#help-email").hasClass("is-danger")) {
alert("이메일을 다시 확인해주세요.")
return;
} else if (!$("#help-email").hasClass("is-success")) {
alert("이메일 중복확인을 해주세요.")
return;
}
// <------------------------------------- 비밀번호 확인 ------------------------------------->
// 비밀번호1 입력 확인
if (password == "") {
$("#help-password").text("비밀번호를 입력해주세요.").removeClass("is-safe").addClass("is-danger")
$("#input-password").focus()
return;
}
// 비밀번호1 조건 확인
else if (!is_password(password)) {
$("#help-password").text("영문과 숫자 필수 포함, 특수문자(!@#$%^&*) 사용가능 8-20자").removeClass("is-safe").addClass("is-danger")
$("#input-password").focus()
return
}
// 비밍번호1 조건 충족
else {
$("#help-password").text("사용할 수 있는 비밀번호입니다.").removeClass("is-danger").addClass("is-success")
}
// 비밀번호2 입력확인
if (password2 == "") {
$("#help-password2").text("비밀번호를 입력해주세요.").removeClass("is-safe").addClass("is-danger")
$("#input-password2").focus()
return;
}
// 비밀번호1과 비밀번호 비교
else if (password2 != password) {
$("#help-password2").text(alert("비밀번호와 비밀번호 재입력 다릅니다")).removeClass("is-safe").addClass("is-danger")
$("#input-password2").focus()
return;
}
// 비밀번호2 조건 충족
else {
$("#help-password2").text("비밀번호가 일치합니다.").removeClass("is-danger").addClass("is-success")
}
$.ajax({
type: "POST",
url: "/join",
// 저장된 유저 네임 페스워드를 서버로 회원가입한다고 요청
data: JSON.stringify(
{
username: username,
password: password,
email: email,
nickname: nickname
}
),
contentType: "application/json; charset=UTF-8",
success: function (response) {
alert("회원가입을 축하드립니다!")
window.location.replace("/login.html")
}
});
}
'Spring' 카테고리의 다른 글
Spring Boot MySQL 연결하기 java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) (0) | 2024.04.20 |
---|---|
레이스 컨디션이란? (0) | 2024.04.18 |
@NoArgsConstructor(access = AccessLevel.PROTECTED) (0) | 2023.01.26 |
Spring boot Mysql 삽질 (0) | 2023.01.18 |
Spring boot Mysql dbeaver연동 삽질 (0) | 2023.01.17 |