01:06
Урок 24: Fetch API

Курс по программированию на JavaScript

Урок 24: Fetch API

Fetch API — это современный интерфейс для выполнения HTTP-запросов в веб-приложениях. Он предоставляет простой и гибкий способ взаимодействия с сервером, заменяя устаревший объект XMLHttpRequest. В этом уроке мы рассмотрим основы Fetch API и приведем примеры его использования.

Основы Fetch API

Fetch API используется для выполнения асинхронных запросов к серверу. Он возвращает обещание (promise), которое разрешается, когда сервер отвечает на запрос. Это делает код более читаемым и управляемым.

Простой пример использования Fetch API

Рассмотрим пример выполнения GET-запроса с использованием Fetch API.

// Выполнение GET-запроса с использованием Fetch API
fetch('https://jsonplaceholder.typicode.com/posts')
 .then(response => response.json())
 .then(data => console.log(data))
 .catch(error => console.error('Ошибка:', error));
// Ответ сервера будет выведен в консоль

В этом примере мы выполняем GET-запрос к API и обрабатываем ответ, преобразуя его в формат JSON и выводя в консоль.

Пример выполнения POST-запроса

Рассмотрим пример выполнения POST-запроса с отправкой данных на сервер.

// Выполнение POST-запроса с использованием Fetch API
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(data))
 .catch(error => console.error('Ошибка:', error));
// Ответ сервера будет выведен в консоль

В этом примере мы выполняем POST-запрос, отправляя данные в формате JSON и обрабатывая ответ сервера.

Обработка ошибок

Fetch API не выбрасывает исключение при HTTP-ошибках (например, 404 или 500). Вместо этого запрос считается успешным, если сервер отвечает. Ошибки следует обрабатывать вручную, проверяя свойство ok объекта ответа.

// Обработка ошибок с использованием Fetch API
fetch('https://jsonplaceholder.typicode.com/posts/1')
 .then(response => {
 if (!response.ok) {
 throw new Error('Сетевая ошибка: ' + response.status);
 }
 return response.json();
 })
 .then(data => console.log(data))
 .catch(error => console.error('Ошибка:', error));
// Ошибка будет обработана и выведена в консоль

В этом примере мы проверяем свойство ok объекта ответа и выбрасываем ошибку при необходимости.

Упражнения

Упражнение 1: Выполнение GET-запроса

Создайте HTML-документ с кнопкой <button id="loadData">Load Data</button>. Используйте Fetch API для выполнения GET-запроса к API https://jsonplaceholder.typicode.com/users при нажатии на кнопку. Выведите имена пользователей в консоль.

Решение:

// HTML
<button id="loadData">Load Data</button>

// JavaScript
document.getElementById('loadData').addEventListener('click', function() {
 fetch('https://jsonplaceholder.typicode.com/users')
 .then(response => response.json())
 .then(data => {
 data.forEach(user => {
 console.log(user.name);
 });
 })
 .catch(error => console.error('Ошибка:', error));
});
// Имена пользователей будут выведены в консоль

Объяснение: Мы создали HTML-документ с кнопкой и добавили обработчик события click, который выполняет GET-запрос к API и выводит имена пользователей в консоль.

Упражнение 2: Выполнение POST-запроса

Создайте HTML-документ с формой <form id="postForm"><input type="text" id="title" placeholder="Title"><button type="submit">Submit</button></form>. Используйте Fetch API для выполнения POST-запроса к API https://jsonplaceholder.typicode.com/posts при отправке формы. Отправьте введенные данные и выведите ответ сервера в консоль.

Решение:

// HTML
<form id="postForm">
 <input type="text" id="title" placeholder="Title">
 <button type="submit">Submit</button>
</form>

// JavaScript
document.getElementById('postForm').addEventListener('submit', function(event) {
 event.preventDefault();
 let title = document.getElementById('title').value;
 fetch('https://jsonplaceholder.typicode.com/posts', {
 method: 'POST',
 headers: {
 'Content-Type': 'application/json'
 },
 body: JSON.stringify({ title: title, body: 'bar', userId: 1 })
 })
 .then(response => response.json())
 .then(data => console.log(data))
 .catch(error => console.error('Ошибка:', error));
});
// Ответ сервера будет выведен в консоль

Объяснение: Мы создали HTML-документ с формой и добавили обработчик события submit, который выполняет POST-запрос к API с данными, введенными в форму, и выводит ответ сервера в консоль.

Категория: JavaScript | Просмотров: 80 | Добавил: Admin | Рейтинг: 1.0/1
Всего комментариев: 0
Имя *:
Email *:
Код *: