Code/Javascript
[Javascript] AJAX 이용한 API 통신 (바닐라 JS)
ki1111m2
2023. 11. 14. 09:05
window.onload = function () {
var httpRequest;
/* button이 클릭되었을때 이벤트 */
document.getElementById("ajaxCall").addEventListener("click", () => {
/* textBox에 작성된 name 데이터를 가져옴 */
var inputName = document.getElementById("inputName").value;
/* 통신에 사용 될 XMLHttpRequest 객체 정의 */
httpRequest = new XMLHttpRequest();
/* Get 방식으로 name 파라미터와 함께 요청 */
let url = "http://127.0.0.1:9000/data/" + inputName;
console.log(url);
httpRequest.open("GET", url);
/* Response Type을 Json으로 사전 정의 */
httpRequest.responseType = "json";
/* 정의된 서버에 요청을 전송 */
httpRequest.send();
/* httpRequest의 readyState가 변화했을때 함수 실행 */
httpRequest.onreadystatechange = () => {
/* readyState가 Done이고 응답 값이 200일 때, 받아온 response를 출력 */
if (httpRequest.readyState === XMLHttpRequest.DONE) {
if (httpRequest.status === 200) {
var result = httpRequest.response;
console.log(result);
document.getElementById("test_data").innerText = result;
const get_data = document.createElement("p");
get_data.append(result.name);
document.getElementById("test_add").appendChild(get_data);
} else {
alert("Request Error!");
}
}
};
});
};
url 설정시 localhost 이용하면 접속 안됨
127.0.0.1 이용할 것
if문 사용시 readState DONE -> status 200 2개 거쳐야함
안하면 결과 3번씩 반복 호출됨
이유는 모르겠음..
https://kim-oriental.tistory.com/12