Ajax는 비동기 자바스크립트와 서버와 통신하기 위한 Fetch, XMLHttpRequest 등을 이용해 서버로부터 자원을 요청하고 받은 후, JS로 일정 부분 DOM만 변경하는 것.
- 서버 자원을 가져오기 위해 사용하는 API
- 비동기적으로 작동한다.
1.fetch를 이용하면 Http Response가 넘어온다.
2.http.json()을 하면 Http Response의 body부분이 json으로 파싱된다.
3.JSON.parse를 쓰게 되면 Http Response전체를 파싱하는게 되는데 Http Response안에는 header, body 등등 여러가지가 들어가있으므로 쓰면 안된다.
fetch(url) //url 서버에 접근한다. Promise를 반환한다.
.then(response => response.json())
// response는 단순한 HTTP Response이며, 실제 JSON이 아니기 때문에 Response에 내장되어 있는 json()을 이용하여 JSON화 시킨다.
.then(json => console.log(json))//JSON화 된 자원을 콘솔에 출력
fetch
사용법 예이다. fetch
안에 url만 적는다면 이는 GET
프로토콜을 이용하는 것이다.let data = {
'name': '김코딩',
'age': 25
}
fetch(url, {
method: 'POST',
body: JSON.stringify(data),
headers: 'Content-Type': 'application/json'
}) //url 서버에 접근한다. Promise를 반환한다.
.then(response => response.json())
// response는 단순한 HTTP Response이며, 실제 JSON이 아니기 때문에 Response에 내장되어 있는 json()을 이용하여 JSON화 시킨다.
.then(json => console.log(json))//JSON화 된 자원을 콘솔에 출력
POST
프로토콜을 이용한 방법이다. POST
는 서버에 자원을 저장하기 위한 HTTP method
다. 따라서 이 경우 HTTP method
를 적어주고 서버에 저장할 데이터를 JSON화 시켜 body
에 넣고, headers
부분을 작성해 줘야한다.fetch
는 코드의 가독성이 좋고 다른 api보다 쓰기 편해서 쓴다.