Fetch API는 HTTP 파이프라인을 구성하는 요청과 응답 등의 요소를 JavaScript에서 접근하고 조작할 수 있는 인터페이스를 제공합니다. Fetch API가 제공하는 전역 fetch() (en-US) 메서드로 네트워크의 리소스를 쉽게 비동기적으로 가져올 수도 있습니다.
이전에는 이런 기능을 XMLHttpRequest를 사용해 할 수 있었습니다. Fetch는 더 좋은 대체제면서, 서비스 워커 등 다른 기술에서도 쉽게 사용할 수 있는 API입니다. 또한 CORS와 같이 HTTP와 관련된 다른 개념들을 한 곳에 모아서 정의할 수 있는 논리적인 장소도 제공합니다.
fetch 명세는 jQuery.ajax()와 크게 두 가지에서 다릅니다.
- fetch()가 반환하는 프로미스 객체는 404, 500과 같은 HTTP 오류 상태를 수신해도 거부되지 않습니다. fetch()의 프로미스는 서버에서 헤더를 포함한 응답을 받는 순간 정상적으로 이행합니다. 대신, 응답의 상태가 200-299를 벗어날 경우 ok (en-US) 속성이 false로 설정됩니다. 프로미스가 거부되는 경우는 네트워크 연결이 실패하는 경우를 포함, 아예 요청을 완료하지 못한 경우로 한정됩니다.
- 자격 증명(credentials) 옵션 (en-US)을 제공하지 않은 경우, fetch()는 교차 출처 쿠키를 전송하지 않습니다. (2018년 4월 이후, 자격 증명 정책의 기본 값이 same-origin으로 변경됐습니다.)
기본적인 Fetch 요청은 매우 쉽게 만들 수 있습니다. 아래 코드를 살펴보세요.
fetch('http://example.com/movies.json')
.then((response) => response.json())
.then((data) => console.log(data));
Copy to Clipboard위 코드는 네트워크에서 JSON 파일을 가져와서 콘솔에 출력합니다. 가장 단순한 형태의 fetch()는 가져오고자 하는 리소스의 경로를 나타내는 하나의 인수만 받습니다. 응답은 Response (en-US) 객체로 표현되며, 직접 JSON 응답 본문을 받을 수는 없습니다.
fetch는 브라우저에만 있고 서버에는 없으니까...
서버에서 쓸 수 있는 방법을 만듬
npm i node-fetch@2.6.1
'코드짜는 마케터' 카테고리의 다른 글
js 기초_ 연산자 수업 (0) | 2023.02.02 |
---|---|
[webpack]노마드 코더 유튜브 클론코딩 webpack part (0) | 2023.01.20 |
[input] range에 눈금 만드는 방법 (0) | 2023.01.04 |
[쿠키] property를 알아보자 (0) | 2023.01.04 |
[node.js] session에 저장된 쿠키 id를 데이터베이스에 저장하는 방법 (0) | 2023.01.03 |