본문 바로가기
Javascript(문법)

Ajax(4)-fetch

by ROVE4 2022. 12. 26.
fetch
프로미스 기반으로 구성
비동기식 방식
js의 기본 기능
XMLHttprequest의 방식은 너무 복잡하다

0.promise 객체

자바스크립트에서 제공하는,비동기를 간편하게 처리할 수 있도록 도와주는 객체
정해진 기능을 수행하고 나서 결과에 따라 성공 or 실패에 대한 정보를 리턴한다.

fetch API는 ES6의 Prosime와 함께  Ajax를 쉽게 사용할 수 있는데, fetch가 반환값으로 가지는 것이
Promise일만큼 Promise는 네트워크 통신과 밀접한 연관이 있다.
const promise = new Promise((resolve, reject) => {
  console.log("install excutor");
  setTimeout(() => {
    resolve("data");
  }, 1000);
});

 

 

 

 

1.fetch()의 기본 문법

let promise = fetch(url,[options]);
  • url  - 접근하고자 하는 URL
  • options - (http메서드, headers,body정의) , 생략도 가능하다. default 방식은 GET 방식
  • promise 타입의 객체를 반환한다.

 


2.기본적인 fetch()의 요청

fetch('http://example.com/movies.json')
  .then((response) => response.json())
  .then((data) => console.log(data));

위의 코드는 네트워크에서 JSON 파일을 가져와서 콘솔에 출력

Response는 HTTP 응답 전체를 나타내는 객체로, JSON 본문 컨텐츠를 추출하기 위해서는 json() 메서드가 필요하다

 


 

3.GET 요청

fetch("https://jsonplaceholder.typicode.com/posts/1", { method: "GET" }).then(
  (response) => console.log(response)
); // 상태코드 및 Header에 대한 정보

fetch("https://jsonplaceholder.typicode.com/posts/1")
  .then((response) => response.json())
  .then((data) => console.log(data)); //자바스크립트 객체 형식으로 변환된다.
fetch() 함수는 default로 GET 방식으로 작동하고 GET 방식은 옵션인자가 필요없다.
대부분의 REST API들은 JSON 형태의 데이터를 응답 , 따라서 response객체를 json() 메서드로 변형가능
이 메서드를 호출하면, response 객체로부터 JSON 형식의 응답자바스크립트 객체로 변환하여 얻는다.

 


4.post 요청

fetch("https://jsonplaceholder.typicode.com/posts", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    title: "테스트",
    body: "테스트 해보기!",
    userId: 1,
  }),
})
  .then((response) => response.json())
  .then((data) => console.log(data))

 

POST 방식일 경우, method 옵션을 명시해야 한다.
headers에는 json 형식을 사용한다고 알려야 한다.
body의 본문 전체를 json 형식으로 바꾸어 준다. ==> JSON.stringify()  js객체를 json 객체로 변환

5. put 요청

fetch("https://jsonplaceholder.typicode.com/posts", {
  method: "PUT",
  headers: {
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    title: "테스트",
    body: "테스트 수정!",
    userId: 1,
  }),
})
  .then((response) => response.json())
  .then((data) => console.log(data))
해당 url의 데이터를 수정하는 요청

 


6. DELETE 형식

fetch("https://jsonplaceholder.typicode.com/posts/1", {
  method: "DELETE",
})
  .then((response) => response.json())
  .then((data) => console.log(data))
해당 url의 데이터를 지워버리는 요청 , method만 명시할것.

 


'Javascript(문법)' 카테고리의 다른 글

Ajax(5)-JSON  (0) 2022.12.26
Ajax(3)-XMLHttpRequest  (0) 2022.12.25
Ajax(2)-Ajax  (1) 2022.12.25
Ajax(1)-http  (0) 2022.12.25
배열의 분리&합침  (0) 2022.12.18