본문 바로가기

Language/JavaScript

Ajax

 

 

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>

  <button id="btn1">클릭</button>

  <div id="div1"></div>

  <script>
    document.querySelector('#btn1').addEventListener('click', loadDoc);

    function loadDoc() {
      //ajax 요청 객체 생성
      const xhttp = new XMLHttpRequest();

      //요청~응답까지의 검증 및 응답 데이터 처리하는 사전
      //요청 전 시점
      //요청 객체에 응답 완료? 정상 응답? 조건에 한해서만
      //응답된 데이터를 받아서 div1이라는 id tag에 데이터 출력
      xhttp.onreadystatechange = function() {
        // alert(this.readyState);  1~4까지의 숫자 확인 가능, 상태가 변경될때마다 자동 갱신
        if (this.readyState == 4 && this.status == 200) {
          let data = this.responseText;
          alert(data);
          document.getElementById("div1").innerHTML = data;
        }
      };

      //Get방식으로 ajaxRes.js에게 요청하는 구조
      //설정
      xhttp.open("GET", "ajaxRes.jsp");

      //실제 요청 수행
      xhttp.send();
    }
  </script>

</body>
</html>

<!-- 
  로직

  1. 기능
  버튼 클릭 -> jsp에게 요청 -> jsp는 이름 응답
  응답된 이름을 html의 div tag에 출력
  
  2. html에서 jsp가 응답된 데이터를 동적으로 처리
 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>

  <button id="btn1">클릭</button>

  <div id="div1"></div>

  <script>
    document.querySelector('#btn1').addEventListener('click', loadDoc);

    function loadDoc() {
      const xhttp = new XMLHttpRequest();

      xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
          let data = this.responseText;
          alert(data);
          
          //step02 - csv 형식의 문자열 처리
          //js에도 java처럼 문자열 특정 기준으로 분리하는 함수 - split()
          sData = data.trim().split(',');
          console.log(sData[0]);
          document.getElementById("div1").innerHTML = sData[0];

          //step01 = json 객체로 변환 필수
          //data = JSON.parse(data);
          //document.getElementById("div1").innerHTML = data.name;
        }
      };

      xhttp.open("GET", "ajaxRes2.jsp");

      xhttp.send();
    }
  </script>

</body>
</html>

 

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

[Vue] 데이터 바인딩  (0) 2021.09.19
JSON, Google Chart  (0) 2021.09.19
Storage  (0) 2021.09.19
객체 생성  (0) 2021.09.19
이벤트 처리 & 콜백 함수  (0) 2021.09.19