728x90
ajax 통신은 많이 써봤지만
vanilla js 에서 ajax 통신은 안써본것같아서 공부해보려고 한다.
자바스크립트로 ajax통신을 할 때 흔히 jquery를 사용하지만,
순수 javascript를 통해 ajax 통신을 할때는 XMLHttpRequest 라는 API를 이용한다.
XML은 원래 XML만을 전송하는 목적을 갖고 있었지만,
JSON 이나 일반 텍스트는 물론 파일까지도 전송이 가능하다.
AJAX라는 이름도 비동기 자바스크립트와 XML이다.
(Asynchronous JavaScript And XML)
<script>
/*vanilla js 로 구현한 ajax (GET)*/
var xhr = new XMLHttpRequest();
//요청을 보낼 방식, url, 비동기여부 설정
xhr.open('GET', 'url', true);
//요청전송
xhr.send();
//callback
xhr.onload = ()=>{
if(xhr.status == 200){
//success
console.log(xhr.response);
} else {
//failed
console.log(xhr.response);
}
}
</script>
<script>
/*vanilla js 로 구현한 ajax (POST)*/
var xhr = new XMLHttpRequest();
//요청을 보낼 방식, url, 비동기 여부 설정
xhr.open('POST', 'url', true);
//HTTP요청 헤더 설정
xhr.setRequestHeader('Content-type', 'application/x-www-form=urlencoded');
//요청전송
xhr.send("id=post_ajax");
//callback
xhr.onload = function(){
if(xhr:status == 200){
//success
console.log(xhr.response);
} else {
//failed
}
}
</script>
POST방식은 GET방식과 거의 같지만,
setRequestHeader()를 통해 헤더설정을 추가해야한다.
또한 전송할 데이터도 url이 아닌 .send()메소드 안에 넣어서 전송해야함.
'JAVASCRIPT' 카테고리의 다른 글
[JS] call(), apply() 차이점 (0) | 2022.12.02 |
---|---|
[JS - jQuery] $.each(), $(“selector”).each(), $(this) - 개발자 배찌 (0) | 2022.10.14 |
[JS] 인증번호 1분에 최대 5번만 호출 - 개발자 배찌 (0) | 2022.10.13 |
[JS] 실무 - chart.js 활용해서 그래프 만들어보기 - 개발자 배찌 (0) | 2022.10.07 |
[js] api를 이용하여 정보 얻어내기 (jquery, json 활용) (0) | 2022.02.05 |