[javascript] AJAX XMLHttpRequest

깨미·2021년 7월 6일
0

💻 배워가기 💻

목록 보기
8/30
post-thumbnail

AJAX 란 Asynchronous JavaScript And XML, XMLHttpRequest 객체는 서버와 통신하기 위해 사용하는 것.
JSON, XML, HTML, TEXT format 등을 포함하여 다양한 format을 주고 받을 수 있음.
URI를 정의하거나 URI를 통한 요청에 대한 응답을 위해 express의 router를 사용.

나는 다른 URI로 이동할 때 javascript안에서 loacation.href를 사용하는 식이었다. 단순히 페이지를 이동시키다 보니 router에서의 response를 받을 수 없었다. 그때 같이 프로젝트하는 팀원이 새로운 방법을 찾았는데 그게 XMLHttpRequest 였다.
다양한 request를 보낼 수 있고, 또 그 request에 대한 callback이 가능하다. response text 마다 구분하여 처리도 할 수 있어 유용하게 쓸 수 있을 듯 하다.

예시로 URI '/main/'에서 get으로 request가 온다면 'OK'로 send 하고,

router.get('/main/', function (req, res, next) {
  res.send('OK');
});

javascript에서 '/main/'으로 get request 후, response text를 확인하는 것을 코드로 작성하였다.

    send('GET','/main/') // 함수 호출

    function send(request, data) { 
        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function () {  // callback
            if (xhr.readyState === xhr.DONE) {  // if state is DONE
                if (xhr.status === 200 || xhr.status === 201) {
                    if (xhr.responseText === 'OK') {
                        // check response text
                    }
                } else {
                    console.error(xhr.responseText);
                }
            }
        };
        xhr.open(request, data)
        xhr.send();
    }

이 방법 외에도 'axios'가 있던데 공부를 해봐야 겠다 ❗

web은 경험도 많이 없고, 필요한 기능만 참고하는 식으로 개발하였기 때문에 아직 갈 길이 먼거 같다🤦‍♀️ 그래도 알아가고 성장하는 이 순간을 즐기자.

profile
vis ta vie

0개의 댓글