[AJAX] XMLHttpRequest객체 사용, 서버통신

2024. 9. 29. 22:01· FrontEnd/JavaScript
목차
  1. 0.XMLHttpRequest
  2. 1.XMLHttpRequest 사용
  3. 1-1.XMLHttpRequest 객체 생성
  4. 1-2.서버로 보낼 요청 설정 open()
  5. 1-3.서버에 요청 전송
  6. 1-4.응답 처리
  7. 2.사용 예시
  8. 2-1.HTML
  9. 2-2.main.js
728x90


0.XMLHttpRequest

AJAX 통신의 핵심 객체로, 브라우저와 서버 간에 데이터를 주고받을 수 있도록 해주는 JavaScript 객체

이 객체를 사용하여 웹 페이지를 새로 고침하지 않고도 서버에 데이터를 요청하고, 서버로부터 받은 데이터를 처리할 수 있습니다.

 

 

 

 

1.XMLHttpRequest 사용

1-1.XMLHttpRequest 객체 생성

var 변수이름 = new XMLHttpRequest(); 형식으로 XMLHttpRequest객체를 생성합니다.
var xhr = new XMLHttpRequest();

 

 

1-2.서버로 보낼 요청 설정 open()

open() 메서드를 사용해 요청을 설정합니다. 이때 요청 메서드(GET, POST)와 서버의 URL, 비동기 여부를 지정할 수 있습니다.
xhr.open('GET', 'https://example.com/data', true);

 

 

 

1-3.서버에 요청 전송

send() 메서드를 사용해 설정된 요청을 서버에 전송합니다.
xhr.send();

 

 

 

1-4.응답 처리

서버에서 응답이 오면, 이를 처리하기 위한 콜백 함수를 작성할 수 있습니다. onreadystatechange 이벤트 핸들러를 사용해 서버 응답을 처리합니다.
xhr.onreadystatechange = function() {
    if (xhr.readyState === 4 && xhr.status === 200) {
        console.log(xhr.responseText);  // 서버 응답 출력
    }
};

 

 

 

 

 

2.사용 예시

2-1.HTML

버튼을 누르면 loadDate()가 불러온다.
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>AJAX 간단 예제</title>
    <script src="./main.js" defer></script>
</head>
<body>

    <h1>AJAX 간단 예제</h1>
    
    <button onclick="loadData()">데이터 불러오기</button>
    
    <div id="result" style="margin-top: 20px;"></div>

</body>
</html>

 

 

2-2.main.js

샘플 데이터를 제공하는 무료 온라인 REST API 서비스인 JSONPlaceholder 에게서 https://jsonplaceholder.typicode.com/posts/1에 비동기적으로 GET요청을 보낸다.

onreadystatechange를 통해 서버의 응답을 받으면 서버에서 받은 응답 데이터를 Dom요소를 변환시켜 출력해준다.
function loadData() {
  // XMLHttpRequest 객체 생성
  var xhr = new XMLHttpRequest();
  
  // 서버로 보낼 요청 설정 (GET 요청, 비동기)
  xhr.open('GET', 'https://jsonplaceholder.typicode.com/posts/1', true);
  
  // 요청 상태가 변할 때 실행되는 콜백 함수
  xhr.onreadystatechange = function() {
      // 요청 완료(readyState가 4)되고, 성공(status가 200)한 경우
      if (xhr.readyState === 4 && xhr.status === 200) {
          // 서버에서 받은 응답 데이터 출력
          var response = JSON.parse(xhr.responseText);
          document.getElementById('result').innerHTML = 
              '<h3>' + response.title + '</h3><p>' + response.body + '</p>';
      }
  };
  
  // 서버에 요청 전송
  xhr.send();
}

 

 

 

 

 

 

 

 

 

 

 

 

728x90

'FrontEnd > JavaScript' 카테고리의 다른 글

[AJAX] 헤더  (0) 2024.09.30
[AJAX] AJAX(Asynchronous JavaScript and XML) 란?  (0) 2024.09.29
[JavaScript] Symbol  (0) 2024.07.28
  1. 0.XMLHttpRequest
  2. 1.XMLHttpRequest 사용
  3. 1-1.XMLHttpRequest 객체 생성
  4. 1-2.서버로 보낼 요청 설정 open()
  5. 1-3.서버에 요청 전송
  6. 1-4.응답 처리
  7. 2.사용 예시
  8. 2-1.HTML
  9. 2-2.main.js
'FrontEnd/JavaScript' 카테고리의 다른 글
  • [AJAX] Jquery 사용
  • [AJAX] 헤더
  • [AJAX] AJAX(Asynchronous JavaScript and XML) 란?
  • [JavaScript] Symbol
아사_
아사_
프로그래밍 공부한거 정리해두는 메모장 블로그
아사_
개발공부 블로그
아사_
전체
오늘
어제
  • 분류 전체보기 N
    • FrontEnd N
      • html
      • css
      • JavaScript
      • Node.js
      • React N
      • React Native
    • BackEnd
      • SpringBoot
      • FastAPI
      • PHP
      • Flask
      • supabase
    • Language
      • Python
      • JAVA
      • Kotlin
      • C++
    • Development Tools
      • AWS
      • GIT,GITHUB
      • Docker
      • 메시지 브로커
      • 기타 도구,플랫폼
    • Computer Science
      • 개발지식
      • Server&Network
      • Algorithm&DataStructure
      • Security
      • DataBase
      • OS
    • AI
    • 기타
      • 잡다
      • Android
      • 도서
    • 클론코딩
      • 생활코딩 Express.js
      • 점프 투 장고
      • 생활코딩 Node.js
    • 프로젝트 N
      • DevQuest N

인기 글

최근 글

250x250
hELLO · Designed By 정상우.v4.2.2
아사_
[AJAX] XMLHttpRequest객체 사용, 서버통신
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.