상세 컨텐츠

본문 제목

AJAX, ERROR415, Qualifier, Input/button tag(에러 처리하기)

JAVA/Spring

by 영공쁘이 2021. 8. 7. 12:27

본문

 

 

) ajax를 사용하기 위해 쓰는 script를 넣은 것이고 이게 있어야 ajax에 접근이 가능하다!

2) 기존에는 js/login.js 로 되어있었는데, 이는 경로에 틀림이 있을 뿐더러, 실제

 

 

 

여기, loginController에서 사용한 방법에서는 js가 인식이 안되고 그래서 웹 상에서는, login.js가 인식을 하지 못한다!

그래서, 여기에서는 보내는 것이 진짜 무의미하다!! 절대 하면 안됨 지금 이상한 코드임(css, js 부분!!!) 이것을 지우고 직접 적용하는 방식을 취하고. css는 적용되게 나둬보자!!!

 

3) 2와같은 방법을 취하고 났더니, login.js를 F12를 누르고 network상에서 봤을 때, 처음에는 404에러가 뜸(실제로 jsp코드에 인식을 시키지 않았기 때문임) 그러고나서 controller 쪽을 지우고 본 코드에 적용시켰을 때 적용이 됨

 

 

처음에, ajax 코드 조차 들어가지 못했다 그리고 Controller에서도 해당하는 요청 부분에 들어가지 못했다. 이유는,, 이미 실행되고 있는

js method가 어디선가 움직이고 있을텐데 그걸 써버리면서 에러가 뜨게 되어, ajax자체에 들어가지 못함..

그래서, 이름을 바꿔봄(메서드 이름을!)

 

 

 

그랬더니 반응이 옴

그 이후로 접근이 가능해짐!

 

$.ajax({
			url : "/login",
			type:"POST", 
			data : JSON.stringify(object), 
			contentType : "application/json; charset=utf-8",
			dataType:"json",
			success : function(data) { //data가 외부에서 들어온 값이 됨(여기서는 controller가 되겠지.)
	     
				if(data.result=="Y"){
					alert('로그인 되었습니다.');
				}else if(data.result=="N"){
					alert('회원 정보가 일치하지 않습니다.');
					return;
				)			
            }
		});

 

1) 여기서의 문제, 계속 에러 415(Media Type Error)가 떴었다 ( 그 해결책은, contentType부분을 수정하라 다)

그래서, 원래 코드는 ,, contentType : "application/json charset=utf-8", 이거였다.,

근데 여기서 contentType : "application/json; charset=utf-8", 여기서,,, ;(세미클론)을 넣지 않아서 계속 에러가 난 것이다.

고치고 났더니 밑에 코드도 잘 들어감(근데 여기서, 밑에로 들어가기 앞서 수정해야 할 부분이 있음)

 

2) 원래 문제가, success까지 코드가 동작했는데, 그 밑에는 아예 안됨

그 이유가, 외부에서 서비스 처리를 할 때 오류가 있었음!

 

LoginController부분에서 service 선언하는 부분에 @Autowired를 해주지 않았음

 

변경 전)

 

변경 후)

 

@Autowired 부분을 넣어야 무조건 반응이 될거다(빈 등록을 해야하기 때문)!!

 

그리고, 여기서 주의할 점!!!

@Qualifier는 제한자인데, 서비스 단에서 지정한 이름 그대로 해야 적용이 된다(ILoginService가!)

 

 

 

무조건 1) Service 의 이름이 같아야 하고 2) 제한자도 @Autowired 해줘야 함

 

 

 

개발자 도구 -> network 탭

 

처음에는 200이 아닌 400이 떴다(에러임) 그리고 연속되어서 나왔다.

1) 400이 뜬 것은, 제한자에 DI를 걸어주지 못하여 Bean 등록을 안했기 때문(해결 점은, 위를 참고할 것)

2) 중복이 되는 이유는, 현재 로그인 확인 버튼이 태그가 button이다. 이것은, 이벤트가 일어나는 태그이므로 반응이 연속으로 일어난 것이고 코드가 계속 이어지는 것이다(그래서 다른 곳으로 들어가 빠져나오지 못함(즉, 무한 대기 상태가 된 것) -> 그러면서 error 415가 뜸(엉뚱한 곳으로 들어감..)

 

그래서!!!!

<button class="btn btnFull btnLogin disabled" onclick="ggg()">로그인</button> 를

위와 같이, Input tag로 바꿔서 실행함!!

그럼 해결 완료~!!!

 

 

 

'JAVA > Spring' 카테고리의 다른 글

Board관련 sts 코드  (0) 2021.08.09
Member 관련 sts 코드  (0) 2021.08.09
웹소켓 기반으로 하는 채팅2  (0) 2021.08.07
웹 소켓 기반 채팅 만들기 1  (0) 2021.08.07
210624 다운로드 및 갱신~  (0) 2021.08.07

관련글 더보기