본문 바로가기
HTML

39일차//XML// 🧶1. XMLHttpRequest() xml파일을 읽어 문서를 불러온다.

by aesup 2021. 3. 9.
728x90

MLHttpRequest 객체

현재 대부분의 주요 웹 브라우저는 서버에 데이터를 요청하기 위한 XMLHttpRequest 객체를 내장하고 있습니다.

XMLHttpRequest 객체는 서버로부터 XML 데이터를 전송받아 처리하는 데 사용됩니다.

 

이 객체를 사용하면 웹 페이지가 전부 로딩된 후에도 서버에 데이터를 요청하거나 서버로부터 데이터를 전송받을 수 있습니다.

즉, 웹 페이지 전체를 다시 로딩하지 않고 일부분만을 갱신할 수 있게 됩니다.


XMLHttpRequest 객체의 생성

자바스크립트를 이용하여 XMLHttpRequest 객체를 생성하는 방법은 다음과 같습니다.

예제

var xmlHttp = new XMLHttpRequest();

 


서버로부터의 응답(response) 확인

 

Ajax에서 서버로부터의 응답을 확인하기 위해 사용하는 XMLHttpRequest 객체의 프로퍼티는 다음과 같습니다.

 

 - readyState 프로퍼티

 - status 프로퍼티

 - onreadystatechange 프로퍼티


readyState 프로퍼티

readyState 프로퍼티는 XMLHttpRequest 객체의 현재 상태를 나타냅니다.

 

이 프로퍼티의 값은 객체의 현재 상태에 따라 다음과 같은 주기로 변화합니다.

 

 1. UNSENT (숫자 0) : XMLHttpRequest 객체가 생성됨.

 2. OPENED (숫자 1) : open() 메소드가 성공적으로 실행됨.

 3. HEADERS_RECEIVED (숫자 2) : 모든 요청에 대한 응답이 도착함.

 4. LOADING (숫자 3) : 요청한 데이터를 처리 중임.

 5. DONE (숫자 4) : 요청한 데이터의 처리가 완료되어 응답할 준비가 완료됨.

 

1.파일을 읽기 위해 MLHttpRequest 객체를 생성한다.

2.파일 로드를 할 수 있게 함수를 생성한다

3.MLHttpRequest 객체를 변수로 지정한 xhttp에 onreadystatechange

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<p id = "demo">p tag</p>
<button type="button" onclick = "loadXMLDoc()">내용변경</button>

<script type="text/javascript">
let xhttp = new XMLHttpRequest();//xml 파일 읽기

function loadXMLDoc() {
   
   xhttp.onreadystatechange = function () {
      //console.log(this.responseText);//response:응답
      //console.log(this.status);
      //console.log(this.readyState);
   
   
      if(this.readyState == 4 && this.status == 200){
         document.getElementById("demo").innerHTML = this.responseText;
      }   
   
   }
   xhttp.open("GET","test.txt", true);
   console.log("xhttp.open");
   xhttp.send();
   console.log("xhttp.send");
}

/* 
 readyState: 진행상태
 0->open  메소드를 수행하기 전 상태
 1->loading 중..
 2->loading완료
 3->Server 처리중
 4->Server 차리완료
 
 
 status
 이게 200이 나온다 ->success
 403->접근 금지
 404-> 못찾겠다는 에러
 index1.html:23 GET http://localhost:8090/sample01/test1.txt 404
 500->구문에러 문법이 틀렸다
*/
</script>


</body>
</html>
728x90