JavaScript

[javascript]ajax 내에서 return 안되는 현상

으악꿈 2021. 3. 22. 10:58
728x90

ajax 사용시 success나 일부 옵션에서 값을 return하는 경우 undefined가 나오는 현상이 발생했다.

 

test : function(){
    $.ajax({
        url: url,
        data: param,
        type: 'POST',
        dataType : "json",
        async : false,
        success: function(data){
            if (!data.result){
	           	alert(data.message);
                return false;
            }else{
                return true;
            }
        }
    });
}

 

 

다른 함수에서 test() 호출 시 true를 return 하여도 값을 찍어보면 undefined가 나온다.

 

이 경우 ajax 밖에 변수를 선언해준후, ajax 밖에서 return해주면 된다.

 

test : function(){
    var isSuccess = true;
	
    $.ajax({
        url: url,
        data: param,
        type: 'POST',
        dataType : "json",
        async : false,
        success: function(data){
            if (!data.result){
            	alert(data.message);
            	isSuccess = false;
            }else{
            	isSuccess = true;
            }
        }
    });
		
    return isSuccess;
}
728x90