투케이2K

21. (axios/액시오스) axios http 요청 callback 콜백 리턴 받기 수행 본문

Http & Api

21. (axios/액시오스) axios http 요청 callback 콜백 리턴 받기 수행

투케이2K 2022. 7. 1. 10:45

[개발 환경 설정]

개발 툴 : Edit++

개발 언어 : axios

 

[소스 코드]

    <!-- [라이브러리 CDN 등록 실시] -->
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>




    <!-- [내부 자바스크립트 J쿼리 이벤트 지정] -->    
    <script>


        // [dom 생성 및 이벤트 상시 대기 실시]
        document.addEventListener("DOMContentLoaded", ready);
        function ready(){
            console.log("");
            console.log("[window ready] : [start]");            
            console.log("");
        };





        // [html 최초 로드 및 이벤트 상시 대기 실시]
        window.onload = function() {
            console.log("");
            console.log("[window onload] : [start]");
            console.log("");   

            // [http 요청 및 콜백 형식 정의]
            apiTest(function(type, message){
                if (type == true){
                    console.log("");
                    console.log("[callback] : [1] : " + type);
                    console.log("[message] : " + message);
                    console.log("");  
                }
                else {
                    console.log("");
                    console.log("[callback] : [2] : " + type);
                    console.log("[message] : " + message);
                    console.log("");
                }
            });
        };





        /* [자바스크립트 테스트 코드] */
        function apiTest(callback){
            console.log("");
            console.log("[apiTest] : [start]");
            console.log("");


            /*
            [요약 설명]
            1. axios (액시오스) 는 http 통신에 사용하는 라이브러리입니다 (VueJs 프레임워크에서 사용)
            2. axios (액시오스) 및 CDN 참고 사이트 : https://joshua1988.github.io/vue-camp/vue/axios.html
            3. axios (액시오스) 문법 참고 사이트 : https://joshua1988.github.io/vue-camp/
            4. axios (액시오스) 문법 참고 사이트 : https://axios-http.com/kr/docs/api_intro
            5. axios (액시오스) 는 Promise 기반의 HTTP 통신 라이브러리입니다
            */


            // [주소 정의 실시]
            var REQ_URL = "http://dev.admin.co.kr/test/IMAGE_DATA?ENCODE=u/5jcTddVT1Ld6eP76P4kj8rPEayCs9rOB9tZCDS3BLEL/7qOLsWY8ZBGaR6u2p2";

            
            // [요청 데이터 확인 실시]
            console.log("");
            console.log("[apiTest] : [Request]");
            console.log("[REQ_TYPE] : " + "GET");
            console.log("[REQ_URL] : " + REQ_URL);
            console.log("");


            // [axios 요청 수행 실시]
            axios({
                method: "get", // [요청 타입]
                url: REQ_URL, // [요청 주소]
                headers: {
                    "Content-Type" : "application/x-www-form-urlencoded;"
                }, // [요청 헤더]
                timeout: 10000 // [타임 아웃 시간]
            })
            .then(function(response) {

                // [콜백 리턴 수행]
                callback(true, response.data);
            })
            .catch(function(error) {

                // [콜백 리턴 수행]
                callback(false, JSON.stringify(error));
            });
        };

    </script>
 

[결과 출력]


반응형
Comments