더북(TheBook)

2.2.3 encodeURLComponent, decodeURLComponent

 

AJAX 요청을 보낼 때 ‘http://localhost:8003/search/노드’처럼 주소에 한글이 들어가는 경우가 있습니다. 서버 종류에 따라 다르지만, 서버가 한글 주소를 이해하지 못하는 경우가 있는데, 이럴 때 window 객체의 메서드인 encodeURIComponent 메서드를 사용합니다. 노드에서도 사용할 수 있습니다.

<script>
  var xhr = new XMLHttpRequest();
  xhr.onreadystatechange = function() { // 요청에 대한 콜백
    if (xhr.readyState === xhr.DONE) { // 요청이 완료되면
      if (xhr.status === 200 || xhr.status === 201) { // 응답 코드가 200이나 201이면
        console.log(xhr.responseText); // 서버에서 보내주는 값
      } else {
        console.error(xhr.responseText);
      }
    }
  };
  xhr.open('GET','https://www.zerocho.com/api/search/' + encodeURIComponent('노드')); // 한글 주소 인코딩 후 전송
  xhr.send(); // 요청 전송
</script>
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.