KITRI/JAVASCRIPT

JavaScript 의 이해 - [AJAX] XHR(XMLHttpRequest)

λ˜νš¨λ‹ˆ 2020. 7. 16. 10:36

XHR(XMLHttpRequest)μ΄λž€?

 

XMLHttpRequest(XHR)은 AJAX μš”청을 μƒμ„±ν•˜λŠ” JavaScript APIμž…λ‹ˆλ‹€. XHR의 λ©”μ„œλ“œλ‘œ λΈŒλΌμš°μ €μ™€ μ„œλ²„κ°„μ˜ λ„€νŠΈμ›Œν¬ μš”μ²­μ„ 전솑할 수 μžˆμŠ΅λ‹ˆλ‹€.

 

XMLHttpRequest(XHR) κ°μ²΄λŠ” μ„œλ²„μ™€ μƒν˜Έ μž‘μš©ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. μ „체 νŽ˜μ΄μ§€λ₯Ό μƒˆλ‘œ κ³ μΉ˜μ§€ μ•Šκ³ λ„ URLμ—μ„œ 데이터λ₯Ό 검색 ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λ₯Ό 톡해 μ›Ή νŽ˜μ΄μ§€λŠ” μ‚¬μš©μžμ˜ μž‘μ—…μ„ λ°©ν•΄ν•˜μ§€ μ•Šκ³  νŽ˜μ΄μ§€μ˜ μΌλΆ€λ§Œ μ—…λ°μ΄νŠΈ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. AJAX ν”„λ‘œκ·Έλž˜λ°μ— XMLHttpRequest많이 μ‚¬μš©λ©λ‹ˆλ‹€.

 

 

[μ°Έκ³ μžλ£ŒμΆ”κ°€]

https://www.w3schools.com/js/js_ajax_http.asp

 

AJAX The XMLHttpRequest Object

AJAX - The XMLHttpRequest Object The keystone of AJAX is the XMLHttpRequest object. The XMLHttpRequest Object All modern browsers support the XMLHttpRequest object. The XMLHttpRequest object can be used to exchange data with a web server behind the scenes.

www.w3schools.com


command.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
${param.msg}

 

postXHR.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="postXHR.js"></script>
</head>
<body>
	<form id="createForm" action="">
		<input type="text" name="msg"/>
		<input type="button" value="μž…λ ₯" onclick="toServer()"/>
	</form>
	<br /><br />
	
	<div id="disp">
		
	</div>
</body>
</html>

 

postXHR.js

/**
 * 
 */

var xhr = null;
var arr = new Array();

function toServer(){
	var msg = document.getElementById("createForm").msg.value;
	if(window.XMLHttpRequest){
		xhr = new XMLHttpRequest;
	}else{
		xhr = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
//	GET
//	xhr.open("GET", "command.jsp?msg=" + msg, true); //μš”μ²­λ°©μ‹, μ„œλ²„νŒŒμΌ, 비동기식(μ •μ νŽ˜μ΄μ§€)
//	xhr.send();
	
//	POST
	xhr.open("POST", "command.jsp", true);
	xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xhr.send("msg="+msg);
	xhr.onreadystatechange = process;
}	
function process(){
	if(xhr.readyState==4 && xhr.status==200){
		arr.push("msg" + xhr.responseText);
		
		var disp = document.getElementById("disp");
		disp.innerText = xhr.responseText;
	}
	
	//alert(arr.join("\n"));
}

 

λ°˜μ‘ν˜•