오류 해결

HTTP 요청 헤더를 파싱하는 중 오류 발생 / java.lang.IllegalArgumentException / HTTP 상태 400 - 잘못된 요청

에어팟맥스 2022. 9. 16. 15:10

 


<목표>

웹페이지에서 비밀번호 찾기를 누르면 나오는 모달창에서

1. 아이디와 이메일을 입력받고,

2. 입력받은 이메일로 인증코드를 보낸 다음,

3. 전송받은 인증코드를 입력하면

4. 새 비밀번호를 입력받아서

5. 비밀번호를 새로 만든다.

이때, 인증코드를 잘못 입력하면 아이디와 이메일을 입력받는 초기창으로 돌아감.


 

<문제 발생>

인증코드 전송까지는 잘 되는데 올바른 인증코드를 입력하면 아래 사진처럼 오류가 발생한다.

(틀린 인증코드를 입력하면 정상작동됨.)

웹페이지 에러창
콘솔창 에러메시지
F12 콘솔창 에러메시지

 


 

<오류 해결 과정>

콘솔창 에러메시지 마지막 줄인

1. pwdUpdateEnd.up:1(pwdUpdateEnd.up 의 첫번째 줄에서부터 오류가 난 것) 

이 부분과,

2. 인증코드를 잘못 작성했을 때는 정상작동되고, 인증코드를 올바르게 입력했을 때만 오류가 발생한다는 점

을 고려하면

 

인증코드를 올바르게 입력했을 때 페이지를 넘겨주는 부분에서 문제가 발생했을 것으로 추측해볼 수 있다.

 

 

인증코드를 올바르게 입력했을 때 페이지를 넘겨주는 부분( 사진상의 if문)

if문의 loc 부분 코드에서 문제가 생긴 것으로 추측 가능

loc = request.getContextPath()+"/login/pwdUpdateEnd.up?userid="+userid;

이 부분에서 문제가 발생했다면 userid 부분에서 오류가 있었을 가능성이 가장 높기 때문에 

 

수정 - 1

loc = request.getContextPath()+"/login/pwdUpdateEnd.up";

이렇게 userid 부분을 제외하고 실행시켜 보니까

 

수정 - 1 실행

 

페이지가 넘어갔다.!!!

 

 

그러면 userid 부분에서 오류가 발생한 것이 확실하기 때문에

그 부분의 코드로 넘어가서 userid 를 확인해본다.

System.out.println("===userid :" + userid);

위의 코드를 넣어봐서 넘어온 userid 가 어떤 값을 가지는지 확인해본다.

 

 

 

 

 

 

userid 값 확인해보기

 

userid 값 확인 결과

=== userid : [object:Object]

 

userid 가 안넘어왔다,,,,,

 

그러면 userid 를 넘겨주는 부분으로 가보면

 

userid 값을 넘겨주는 부분

!!!! 오류 발견 !!!!

frm.userid.value = $("input#userid");
frm.userCertificationCode.value = $("input#input_confirmCode").val();

여기서 userid 부분에 .val() 이 빠져있어서 값이 안넘어갔던 것이다,,,,,,

 

 

 


 

<문제 해결>

 

userid 부분 수정하기

frm.userid.value = $("input#userid").val();
frm.userCertificationCode.value = $("input#input_confirmCode").val();

올바르게 수정을 하고 프로그램을 작동해보면, 

 

 

userid 값 받기 성공

=== userid: kimhw

값이 잘 넘어왔고,

(마지막줄의 ~~~~~~~~~~~~~~~userid : null 은 무시해도 됨)

 

 

오류 해결!

값이 잘 넘어오는 것을 볼 수 있다.

 

 

문제 해결!