min's devlog

Ajax, Asynchronous JavaScript and XML 본문

til/Server

Ajax, Asynchronous JavaScript and XML

값진 2022. 7. 5. 14:32

Ajax, Asynchronous JavaScript and XML

  - 비동기 자바스크립트 and XML

  - 자바스크립트 기반의 비동기 통신 기법

  - 브라우저와 웹 서버간의 자바스크립트를 사용한 데이터를 주고 받는 기술

 

 

1. HTTP Request 만들기

var httpRequest;
if (window.XMLHttpRequest) { 
    httpRequest = new XMLHttpRequest();
} else if (window.ActiveXObject) { 
    httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}

서버에 요청(Request)을 하기에 앞서, 서버로 보낸 요청에 대한 응답을 받았을 때 어떤 동작을 할 것인지 정해야한다. 생성한 httpRequest 의 onreadystatechange property에 특정 함수를 할당하면 요청에 대한 상태가 변화할 때 특정 함수(nameOfTheFunction)가 불리게 된다.

httpRequest.onreadystatechange = nameOfTheFunction;

** 해당 함수를 수행하는 것이 아니라 단순하게 어떤 함수가 불릴 것인지만 지정한다. 그러므로 그 함수로 어떠한 변수도 전달하지 않는다. 서버로 부터 응답을 받은 후의 동작을 결정 한 뒤에 요청한다. 아래와 같이 HTTP request 객체의 open()과 send()를 사용한다.

httpRequest.open('GET', 'http://www.example.org/some.file', true);
httpRequest.send(null);

open() 메소드의 파라미터

  • 첫번째 파라미터는 HTTP 요구 방식( GET, POST, HEAD)이다. 모두 대문자로 표기한다.
  • 두번째 파라미터는 요구하고자하는 URL
  • 세번째 파라미터는 생략 가능하며, 비동기식(Asynchronous)으로 수행될 지를 결정한다. 만약 true(기본값) 으로 설정된 경우 자바스크립트 함수가 지속적으로 수행될 수 있어 서버로부터 응답을 받기 전에 유저와 페이지의 상호작용이 계속 진행된다. (AJAX의 비동기성)

데이터는 서버에서 쉽게 parse할 수 있는 형식이어야 한다.multipart/form-data, JSON, XML, SOAP 등과 같은 다른 형식도 가능하다.

"name=value&anothername="+encodeURIComponent(myVar)+"&so=on"

 

데이터를 POST 형식으로 보낼 때 -  요청(request)에 MIME type을 먼저 설정한다.

httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

 

'til > Server' 카테고리의 다른 글

Spring Framework의 전역 에러 처리  (0) 2022.08.12
Ajax 서버 응답 처리  (0) 2022.07.05
[JSP] 로그인 구현  (0) 2022.06.28
[JSP] 게시판 설계  (0) 2022.06.28
[JSP] 메모장  (0) 2022.06.28
Comments