Movatterモバイル変換


[0]ホーム

URL:


  1. Веб-технологии для разработчиков
  2. Интерфейсы веб API
  3. Fetch API

This page was translated from English by the community.Learn more and join the MDN Web Docs community.

View in EnglishAlways switch to English

Fetch API

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨март 2017 г.⁩.

* Some parts of this feature may have varying levels of support.

Fetch API предоставляет интерфейс для получения ресурсов (в том числе по сети). Он покажется знакомым любому, кто использовалXMLHttpRequest, но новый API является более мощным и гибким набором функций.

Определения и использование

Fetch обеспечивает обобщённое определение объектовRequest иResponse (и других вещей, связанных с сетевыми запросами). Это позволит им использоваться везде, где необходимо в будущем, в том числе и для service workers, Cache API и других подобных технологий, которые обрабатывают или изменяют запросы (requests) и ответы (responses), а так же в любых других случаях, которые могут потребовать от вас генерировать свой собственный ответ программно.

Это также предоставляет определение в отношение таких понятий, как CORS и семантика заголовков HTTP origin, заменяя их обособленные определения где бы то ни было.

Чтобы создать запрос и получить данные, используется методGlobalFetch.fetch. Он реализован во множестве интерфейсов, в том числе вWindow иWorkerGlobalScope. Это позволяет использовать его практически в любом контексте для получения данных.

Методfetch() принимает один обязательный аргумент — путь к данным, которые вы хотите получить. Он возвращает promise, который разрешается в (Response) независимо от того, был ли запрос удачным. Вы можете также передать во втором аргументе необязательный объект с указанием опций (см.Request.)

Как толькоResponse выполнится успешно, становятся доступными несколько методов для определения тела контента и, как его содержимое должно быть обработано (см.Body.)

Вы можете создавать запрос и ответ непосредственно, используя конструкторыRequest() иResponse(), но маловероятно, что в этом есть необходимость. Напротив, более вероятно, что они будут созданы как результат работы другого API (например,FetchEvent.respondWith в service workers.)

Отличия от jQuery

Спецификацииfetch() отличаются отjQuery.ajax() тремя основными способами:

  • Промис, возвращённый изfetch(),не будет отвергнут при статусе ошибки HTTP, даже если ответ является HTTP404 или500. Вместо этого, оно будет разрешаться нормально (со статусомok установленным вfalse), и будет отклоняться только при сбое в сети или если что-то помешало завершению запроса.
  • fetch() может получать межсайтовые куки-файлы; таким образом вы можете установить межсайтовую сессию используяfetch.
  • fetch() не будет посылать куки-файлы, если только не указаноcredentials: 'same-origin'.

Примечание:Узнайте больше об использовании Fetch API наUsing Fetch и изучите концепции наFetch basic concepts.

Прерывание выборки

Браузеры начали добавлять экспериментальную поддержку дляAbortController иAbortSignal интерфейсов (aka The Abort API), которые позволяют прерывать операции, такие как Fetch и XHR, если они ещё не завершены. Подробности смотрите на страницах интерфейсов.

Fetch интерфейсы

GlobalFetch

Содержит методfetch(), используемый для получения ресурсов.

Headers

Представляет заголовки запроса/ответа, позволяет запрашивать данные и выполнять различные действия в зависимости от результата.

Request

Запрашивает ресурс.

Response

Представляет ответ на запрос.

Fetch примесь

Body

Предоставляет методы, относящиеся к телу запроса/ответа, позволяя вам определять content-type и то, как ответ должен быть обработан.

Спецификации

Specification
Fetch
# fetch-method

Совместимость с браузерами

Смотрите также

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp