JavaScript Fetch API

В этом руководстве вы узнаете о JavaScript Fetch API и о том, как его использовать для выполнения асинхронных HTTP-запросов.

Английская версия: https://www.javascripttutorial.net/javascript-fetch-api/

Fetch API представляет собой современный интерфейс , который позволяет делать HTTP запросы к серверам из веб - браузеров.

Если вы уже работали с object XMLHttpRequest( XHR), Fetch API может выполнять все задачи как объект XHR.

Кроме того, Fetch API намного проще и чище. Он используется Promiseдля обеспечения более гибких функций для выполнения запросов к серверам веб-браузеров.

Метод fetch()доступен в глобальной области, которая указывает веб-браузерам отправлять запрос на URL-адрес.

Запрос: отправка запроса

fetch()Требуется только один параметр , который является URL ресурса вы хотите найти:

Метод fetch()возвращает одно Promise(обещание), чтобы вы могли использовать методы then()и catch():

Когда запрос будет выполнен, ресурс будет доступен. В этот момент Promiseбудет преобразован в объект Response.

Объект Responseпредставляет собой оболочку API для искомого ресурса. У объекта Responseесть несколько свойств и методов, полезных для проверки ответа.

Ответ: Читаем ответ

Если содержимое ответа находится в необработанном текстовом формате, вы можете использовать этот метод text(). Метод text()возвращает тот, Promiseкоторый разрешается с полным содержимым искомого ресурса:

На практике вы обычно используете async/awaitэтот метод fetch(), например:

В дополнение к методу text(), объект Responseимеет и другие методы , такие как json(), blob(), formData()и , arrayBuffer()чтобы иметь дело с их типами данных.

Работа с кодами состояния ответа

Объект Responseпредоставляет код ситуации и текст ситуации через свойства statusи statusText. Когда запрос выполнен успешно, код statusбудет 200и statusTextесть OK:

Результат:

Если запрошенный ресурс не существует, код ответа будет 404:

Результат:

Если запрошенный URL-адрес вызывает ошибку сервера, код ответа будет 500.

Если запрошенный URL-адрес перенаправлен на новый с ответом 300-309, статус объекта Responseбудет установлен на 200. Кроме того, для свойства перенаправления будет установлено значение true.

В fetch()возвращается один , Promiseкто отвергает , когда настоящий провал, например таймаут браузера, сетевое соединение потеряно или нарушение CORS.

Пример JavaScript Fetch API

Предположим, у вас есть файл, jsonрасположенный на веб-сервере, со следующим содержимым:

И такую ​​HTML-страницу:

В app.js, мы будем использовать метод fetch()для получения пользовательских данных и визуализации данных внутри элемента <div>с классом container.

Сначала объявите функцию, которую getUsers()вы ищете, users.jsonс сервера.

Затем разработайте функцию, renderUsers()которая отображает пользовательские данные:

Результат:

резюме

  • Fetch API позволяет запрашивать ресурс асинхронно.
  • Используйте этот метод, fetch()чтобы вернуть обещание, которое разрешается в объект Response. Чтобы получить актуальные данные, вы вызываете один из методов объекта Response, например, text()или json(). Эти методы разрешены в реальных данных.
  • Используйте свойства statusи statusTextобъект, Responseчтобы получить ситуацию и текст ситуации ответа.
  • Используйте метод catch()или инструкцию try...catchдля обработки запроса об ошибке.

Ознакомьтесь с серией других руководств по JavaScript, которые я написал, щелкнув ссылку ниже:

Учебники по JavaScript

Suggested posts

Мои наиболее используемые ресурсы кодирования

Мои наиболее используемые ресурсы кодирования

На этой неделе я получил электронное письмо от участника ежедневного списка рассылки. Они хотели знать: какие ресурсы вы посещаете ежедневно, еженедельно и ежемесячно? Отличный вопрос! Я рад поделиться некоторыми мыслями о моем рабочем процессе и основных ресурсах, которые я использую.

Серия Lit library - 1: Глубокое погружение в библиотеку lit-html

Серия Lit library - 1: Глубокое погружение в библиотеку lit-html

Цель этой серии блогов — углубиться в библиотеку Lit и получить всестороннее представление о ее уникальных функциях и о том, чем она отличается от других библиотек и фреймворков на рынке. Серия разделена на три части, охватывающие такие темы, как 1.

Related posts

Два года в дизайне: хорошее, плохое и уродливое…

Два года в дизайне: хорошее, плохое и уродливое…

«Привет, Siri, включи Me Dive Оливии Дин». В мае 2021 года я начал стажировку в Future Academy Africa в Акуре, Нигерия.

Обучение на рабочей неделе важнее, чем вы думаете

Обучение на рабочей неделе важнее, чем вы думаете

Мы часто обнаруживаем, что изо всех сил пытаемся реализовать то, что, как мы знаем, полезно для нас. От того, чтобы сказать значимому другому, что мы любим его, до того, чтобы помнить, что нужно говорить как пират, всегда будут те, кто утверждает, что день, неделя или месяц событий не нужны, потому что они уже делают эти вещи.

Что делает подкаст влиятельным?

Что делает подкаст влиятельным?

На прошлой неделе я заметил пресс-релиз, разосланный через PressGazette (новостной веб-сайт британских СМИ). В статье сообщалось, что Acast, скандинавская компания по размещению и рекламе подкастов, возглавит консорциум «вероятно, самых влиятельных» издателей подкастинга.

Архив этой угрозы: Том 7 Черный Баста

Архив этой угрозы: Том 7 Черный Баста

В современном взаимосвязанном мире угроза кибератак более распространена, чем когда-либо. Киберпреступники и государственные деятели постоянно стремятся использовать уязвимости и украсть ценные данные, подвергая организации любого размера значительному риску.