오모씨
462
2020-10-28 17:50:16
3
244

ajax로 select box 사용 중 한번 씩 error가 납니다.


안녕하세요.


Sevlet과 JQuery를 사용해서 select box에서 선택 시 DB에서 데이터를 가져와 jsp 페이지에 뿌리는 화면을 구현하였습니다. 잘 사용하다가, 반복적으로 이 기능을 사용할 경우, session이 사라지는 지 자동 로그아웃이 되어 튕기는 현상이 발생하더라구요.


그래서 이것 저것 확인해보니, select box에서 특정 item 선택 시 ajax 부분에서 어쩌다 한번씩 에러가 납니다. 에러를 console에 뿌려보니 아래 그림과 같이 에러가 나더군요.


처음에 여기저기 뒤져보니 ajax에서 dataType을 명시하라는 말이 있길래 추가해도 어쩌다 한번씩 같은 에러가 납니다.

코드는 다음과 같습니다.


$('#cmtype_Select').change(function () {
  var valueSelected = $(this).val();
  console.log("ajax 전");	  		
  $.ajax({ 
    type : 'GET',  url:'TomcatJDBC', dataType: "json",
    data: {jqueryType: '1', cmCode: valueSelected}, 
    error : function(error) {
    	console.log(error);
        alert("Error!");
    },
    success: function(responseJson) {
    	console.log("success");	 
    	var $select = $('#cstype_Select'); 
    	$.each(responseJson, function(key, value) {
          $('<option>').val(key).text(value).appendTo($select);
      	});
    	console.log("ajax 후");	 
    	$('#cstype_Select').show();
    },
    complete : function() {
    	console.log("complete 후");	
        $('#cstype_Select').show();
    }
  });
});


url은 Servlet 부분이며 확인해 보니, 에러가 날 경우는 아예 success 부분으로 넘어가지 않아 serlvet 단으로도 넘어가지 않고 바로 error로 가서 error를 찍더군요.


혹시, 비슷한 경험을 하시고 해결하시거나 고수님 계시면 답변 부탁드립니다. 미리 감사드립니다. :)

0
  • 답변 3

  • 오모씨
    462
    2020-10-28 17:59:07

    아, 한가지 더 error를 

    console.log("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error)

    이런식으로 찍어 보니

    error가 parsererror라고 나옵니다. ㅜㅜ

  • kiroki
    804
    2020-10-29 10:51:56

    컨트롤러에서 넘겨주는 결과값이 null일 경우가 있는지 확인해보세요

    null인 경우 원인을 분석해 null이 넘어오지 않게 수정하거나

    null의 결과값을 넘기기전 다른 기본값(dataType과 같은 json형태)를 넘기도록 수정해야 합니다.

  • 오모씨
    462
    2020-11-02 12:48:03
    아. 검색해보니 저런경우 json 타입에 맞지 않아서 일수도 있다는데.. null일 수도 있겠네요.. 근데 리턴값이나 넘기는 값이 null인지 확인하려면 서블릿 단에서 넘어오는 값과 결과값을 체크해야 하는데 error가 날때는 아얘 서블릿쪽에 반응이 없어서 저걸 어찌 체크해야 할지가 문제네요. ㅜㅜ
  • 로그인을 하시면 답변을 등록할 수 있습니다.