: Asynchonous Javascript(비동기 자바스크립트)와 XML의 약자
fetch()
를 사용하면 페이지를 이동하지 않아도 서버로부터 필요한 데이터만 받아올 수 있다.JSON
, XML
, HTML
, 텍스트 파일
등 다양한 형태의 데이터를 주고받을 수 있다JSON
, XML
)로 보내면 되기 때문에 비교적 파일 크기가 작아짐: HTTP 요청 전송 기능을 제공하는 클라이언트 사이드 Web API
①. fetch는 2개의 인자를 받는다
fetch(url,[options])
✓ example
fetch('http://example.com/movies/json')
.then((response) => response.json())
.then((data) => console.log(data));
fetch()
는 가져오고자 하는 리소스의 경로를 나타내는 하나의 인수만 받음json()
메서드를 호출해야 함②. GET
fetch('http://example.com/movies/json')
.then((res) => res.json()) // 응답결과를 json으로 파싱
.then((data) => {
console.log(data); // 응답 결과로 실행할 동작을 정의
})
.catch((err) => { // 오류 발생시 오류를 담아서 보여줌
console.log('Fetch Error', err);
});
③. POST
let formData = new FormData(); // POST 매서드로 전송할 데이터
formData.append('key', value); // key-value(키-값) 의 형태로 데이터 추가함
fetch('http://example.com/movies/json',
{ method: 'post',
body: formData //전송할 데이터 body에 추가
})
.then(res => res.json()) //응답 결과를 json으로 파싱
.then(data => {
console.log(data); //응답 결과를 console 창에 출력
})
.catch(err => { // 오류 발생시 오류를 담아서 보여줌
console.log('Fetch Error', err);
});
export function getFlight(filterBy = {} ) { let query = ''; if(filterBy.departure) { query += `departure = ${filterBy.departure}&` } if(filterBy.destination) { query += `destination = ${filterBy.destination}` } let endpoint = `http://ec2-13-124-90-231.ap-northeast-2.compute.amazonaws.com:81/flight?${query}` return fetch(endpoint) .then((res) => res.json); }
&
는 왜 사용하는것임 ?