Fetch API는 HTTP 요청을 만드는 데 사용되는 JavaScript의 최신 Promise 기반 인터페이스입니다. XMLHttpRequest와 같은 이전 메서드를 대체하여 서버에서 리소스를 가져오는 프로세스를 단순화합니다. Fetch는 네트워크 요청 및 응답을 처리하기 위한 더 깔끔하고 읽기 쉬운 접근 방식을 제공하고 Promise, 스트리밍, async/await와 같은 기능을 지원합니다.
fetch(url, options) .then(response => { // Handle the response }) .catch(error => { // Handle errors });
가져오기의 기본값은 GET 메서드입니다.
예:
fetch("https://jsonplaceholder.typicode.com/posts") .then(response => { if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); } return response.json(); }) .then(data => console.log("Data:", data)) .catch(error => console.error("Error:", error));
서버로 데이터를 보내려면 옵션 개체의 body 속성과 함께 POST 메서드를 사용하세요.
예:
fetch("https://jsonplaceholder.typicode.com/posts", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ title: "foo", body: "bar", userId: 1, }), }) .then(response => response.json()) .then(data => console.log("Response:", data)) .catch(error => console.error("Error:", error));
가져오기 함수는 요청을 구성하기 위해 옵션 개체를 허용합니다.
Option | Description |
---|---|
method | HTTP method (e.g., GET, POST, PUT, DELETE). |
headers | Object containing request headers. |
body | Data to send with the request (e.g., JSON, form data). |
credentials | Controls whether cookies are sent with the request (include, same-origin). |
6. 응답 처리
Method | Description |
---|---|
response.text() | Returns response as plain text. |
response.json() | Parses the response as JSON. |
response.blob() | Returns response as a binary Blob. |
response.arrayBuffer() | Provides response as an ArrayBuffer. |
예: JSON 가져오기
fetch(url, options) .then(response => { // Handle the response }) .catch(error => { // Handle errors });
Async/await는 Fetch에서 Promise 처리를 단순화합니다.
예:
fetch("https://jsonplaceholder.typicode.com/posts") .then(response => { if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); } return response.json(); }) .then(data => console.log("Data:", data)) .catch(error => console.error("Error:", error));
XMLHttpRequest와 달리 Fetch는 HTTP 오류에 대한 약속을 거부하지 않습니다. 응답의 ok 속성이나 상태 코드를 확인해야 합니다.
예:
fetch("https://jsonplaceholder.typicode.com/posts", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ title: "foo", body: "bar", userId: 1, }), }) .then(response => response.json()) .then(data => console.log("Response:", data)) .catch(error => console.error("Error:", error));
가져오기는 기본적으로 요청 시간 초과를 지원하지 않습니다. Promise.race()를 사용하여 시간 초과를 구현할 수 있습니다.
예:
fetch("https://api.example.com/data") .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error("Error:", error));
Feature | Fetch API | XMLHttpRequest |
---|---|---|
Syntax | Promise-based, simpler, cleaner. | Callback-based, verbose. |
Error Handling | Requires manual handling of HTTP errors. | Built-in HTTP error handling. |
Streaming | Supports streaming responses. | Limited streaming capabilities. |
Modern Features | Works with Promises, async/await. | No built-in Promise support. |
Fetch는 최신 웹 개발 프로젝트에 이상적입니다.
Promise 및 async/await와 원활하게 통합됩니다.
보다 깔끔하고 유지 관리가 쉬운 코드가 필요할 때 사용하세요.
위 내용은 Fetch API 마스터하기: JavaScript에서 HTTP 요청 단순화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!