Baseline Widely available *
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.)
СпеÑиÑикаÑии fetch()
оÑлиÑаÑÑÑÑ Ð¾Ñ jQuery.ajax()
ÑÑÐµÐ¼Ñ Ð¾ÑновнÑми ÑпоÑобами:
fetch()
, не бÑÐ´ÐµÑ Ð¾ÑвеÑгнÑÑ Ð¿Ñи ÑÑаÑÑÑе оÑибки HTTP, даже еÑли оÑÐ²ÐµÑ ÑвлÑеÑÑÑ HTTP 404
или 500
. ÐмеÑÑо ÑÑого, оно бÑÐ´ÐµÑ ÑазÑеÑаÑÑÑÑ Ð½Ð¾ÑмалÑно (Ñо ÑÑаÑÑÑом ok
ÑÑÑановленнÑм в false
), и бÑÐ´ÐµÑ Ð¾ÑклонÑÑÑÑÑ ÑолÑко пÑи Ñбое в ÑеÑи или еÑли ÑÑо-Ñо помеÑало завеÑÑÐµÐ½Ð¸Ñ Ð·Ð°Ð¿ÑоÑа.fetch()
Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð»ÑÑаÑÑ Ð¼ÐµÐ¶ÑайÑовÑе кÑки-ÑайлÑ; Ñаким обÑазом Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑÑÑановиÑÑ Ð¼ÐµÐ¶ÑайÑовÑÑ ÑеÑÑÐ¸Ñ Ð¸ÑполÑзÑÑ fetch
.fetch()
не бÑÐ´ÐµÑ Ð¿Ð¾ÑÑлаÑÑ ÐºÑки-ÑайлÑ, еÑли ÑолÑко не Ñказано credentials: 'same-origin'
.ÐÑимеÑание: УзнайÑе болÑÑе об иÑполÑзовании Fetch API на Using Fetch и изÑÑиÑе конÑепÑии на Fetch basic concepts.
ÐÑеÑÑвание вÑбоÑкиÐÑаÑзеÑÑ Ð½Ð°Ñали добавлÑÑÑ ÑкÑпеÑименÑалÑнÑÑ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶ÐºÑ Ð´Ð»Ñ AbortController
и AbortSignal
инÑеÑÑейÑов (aka The Abort API), коÑоÑÑе позволÑÑÑ Ð¿ÑеÑÑваÑÑ Ð¾Ð¿ÐµÑаÑии, Ñакие как Fetch и XHR, еÑли они еÑÑ Ð½Ðµ завеÑÑенÑ. ÐодÑобноÑÑи ÑмоÑÑиÑе на ÑÑÑаниÑаÑ
инÑеÑÑейÑов.
GlobalFetch
СодеÑÐ¶Ð¸Ñ Ð¼ÐµÑод fetch()
, иÑполÑзÑемÑй Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ ÑеÑÑÑÑов.
ÐÑедÑÑавлÑÐµÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ¸ запÑоÑа/оÑвеÑа, позволÑÐµÑ Ð·Ð°Ð¿ÑаÑиваÑÑ Ð´Ð°Ð½Ð½Ñе и вÑполнÑÑÑ ÑазлиÑнÑе дейÑÑÐ²Ð¸Ñ Ð² завиÑимоÑÑи Ð¾Ñ ÑезÑлÑÑаÑа.
Request
ÐапÑаÑÐ¸Ð²Ð°ÐµÑ ÑеÑÑÑÑ.
Response
ÐÑедÑÑавлÑÐµÑ Ð¾ÑÐ²ÐµÑ Ð½Ð° запÑоÑ.
Body
ÐÑедоÑÑавлÑÐµÑ Ð¼ÐµÑодÑ, оÑноÑÑÑиеÑÑ Ðº ÑÐµÐ»Ñ Ð·Ð°Ð¿ÑоÑа/оÑвеÑа, позволÑÑ Ð²Ð°Ð¼ опÑеделÑÑÑ content-type и Ñо, как оÑÐ²ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ бÑÑÑ Ð¾Ð±ÑабоÑан.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4