From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- files/ru/web/api/fetch_api/index.html | 102 ++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 files/ru/web/api/fetch_api/index.html (limited to 'files/ru/web/api/fetch_api/index.html') diff --git a/files/ru/web/api/fetch_api/index.html b/files/ru/web/api/fetch_api/index.html new file mode 100644 index 0000000000..cb3917dcf8 --- /dev/null +++ b/files/ru/web/api/fetch_api/index.html @@ -0,0 +1,102 @@ +--- +title: Fetch API +slug: Web/API/Fetch_API +tags: + - API + - Fetch + - Response + - XMLHttpRequest + - request + - Главная + - Справка + - Экспериментальная +translation_of: Web/API/Fetch_API +--- +

{{DefaultAPISidebar("Fetch API")}}

+ +

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

+ +

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

+ +

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

+ +

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

+ +

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

+ +

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

+ +

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

+ +

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

+ +

Отличия от jQuery

+ +

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

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

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

+ +

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

+ +

Fetch интерфейсы

+ +
+
{{DOMxRef("GlobalFetch")}}
+
Содержит метод fetch(), используемый для получения ресурсов.
+
{{DOMxRef("Headers")}}
+
Представляет заголовки запроса/ответа, позволяет запрашивать данные и выполнять различные действия в зависимости от результата.
+
{{DOMxRef("Request")}}
+
Запрашивает ресурс.
+
{{DOMxRef("Response")}}
+
Представляет ответ на запрос.
+
+ +

Fetch примесь

+ +
+
{{DOMxRef("Body")}}
+
Предоставляет методы, относящиеся к телу запроса/ответа, позволяя вам определять content-type и то, как ответ должен быть обработан.
+
+ +

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

+ + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName('Fetch')}}{{Spec2('Fetch')}}Изначальное определение
+ +

Браузерная совместимость

+ +

{{Compat("api.WindowOrWorkerGlobalScope.fetch")}}

+ +

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

+ + -- cgit v1.2.3-54-g00ecf