Baseline Widely available *
ÐÑимеÑание: ÐÑа возможноÑÑÑ Ð´Ð¾ÑÑÑпна в Web Workers.
ÐлобалÑнÑй меÑод fetch()
запÑÑÐºÐ°ÐµÑ Ð¿ÑоÑеÑÑ Ð¸Ð·Ð²Ð»ÐµÑÐµÐ½Ð¸Ñ ÑеÑÑÑÑа из ÑеÑи. ÐозвÑаÑÐ°ÐµÑ promise, ÑодеÑжаÑий Response
обÑÐµÐºÑ (оÑÐ²ÐµÑ Ð½Ð° запÑоÑ).
ÐÑÐ¾Ð¼Ð¸Ñ fetch()
завеÑÑаеÑÑÑ TypeError
, еÑли Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÐµÑ ÑеÑÐµÐ²Ð°Ñ Ð¾Ñибка, Ñ
оÑÑ Ð¾Ð±ÑÑно ÑÑо ознаÑÐ°ÐµÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñ Ð´Ð¾ÑÑÑпами или аналогиÑнÑÑ ÐµÐ¹. ÐÐ»Ñ ÑÑпеÑного завеÑÑÐµÐ½Ð¸Ñ fetch()
доÑÑаÑоÑно ÑдоÑÑовеÑиÑÑÑÑ Ð² Ñом, ÑÑо пÑÐ¾Ð¼Ð¸Ñ Ð²Ñполнен и ÑÑо ÑвойÑÑво Response.ok
Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñение true
. HTTP ÑÑаÑÑÑ 404 не ÑвлÑеÑÑÑ ÑеÑевой оÑибкой.
ÐеÑод fetch()
конÑÑолиÑÑеÑÑÑ Ð´Ð¸ÑекÑивой connect-src
directive of Content Security Policy (полиÑика безопаÑноÑÑи конÑенÑа), а не диÑекÑивой ÑеÑÑÑÑов, коÑоÑÑе извлекаеÑ.
ÐÑимеÑание: ÐÑгÑменÑÑ Ð¼ÐµÑода fetch()
иденÑиÑÐ½Ñ Ð°ÑгÑменÑам Request()
конÑÑÑÑкÑоÑа.
Promise<Response> fetch(input[, init]);ÐÑгÑменÑÑ
ÐпÑеделÑÐµÑ Ð¶ÐµÐ»Ð°ÐµÐ¼Ñй Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ ÑеÑÑÑÑ. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ:
ÐбÑÐµÐºÑ Ñ Ð¾Ð¿ÑиÑми, ÑодеÑжаÑий полÑзоваÑелÑÑкие наÑÑÑойки, коÑоÑÑе Ð²Ñ Ð¶ÐµÐ»Ð°ÐµÑе пÑимениÑÑ Ðº запÑоÑÑ. ÐозможнÑе ваÑианÑÑ:
method
: ÐеÑод запÑоÑа, напÑимеÑ, GET
, POST
.headers
: Ðаголовки, ÑодеÑжаÑиеÑÑ Ð² обÑекÑе Headers
или в обÑекÑе лиÑеÑале Ñ Ð¿Ð¾Ð±Ð¸ÑовÑми знаÑениÑми (ByteString
).body
: Тело запÑоÑа, коÑоÑое Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ: Blob
, BufferSource
, FormData
, URLSearchParams
, или USVString
обÑекÑами. ÐбÑаÑиÑе внимание, ÑÑо GET
или HEAD
запÑÐ¾Ñ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð¼ÐµÑÑ Ñела.mode
: Режим, напÑимеÑ, cors
, no-cors
или same-origin
.credentials
: ÐолномоÑиÑ: omit
, same-origin
или include
. ÐÐ»Ñ Ð°Ð²ÑомаÑиÑеÑкой оÑпÑавки кÑки Ð´Ð»Ñ ÑекÑÑего домена, ÑÑа опÑÐ¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° бÑÑÑ Ñказана. ÐаÑÐ¸Ð½Ð°Ñ Ñ Chrome 50, ÑÑо ÑвойÑÑво Ñакже пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑкземплÑÑ ÐºÐ»Ð°ÑÑа FederatedCredential
или PasswordCredential
.cache
: Режим кеÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð·Ð°Ð¿ÑоÑа default
, no-store
, reload
, no-cache
, force-cache
или only-if-cached
.redirect
: Режим ÑедиÑекÑа: follow
(авÑомаÑиÑеÑки пеÑеадÑеÑовÑваÑÑ), error
(пÑеÑÑваÑÑ Ð¿ÐµÑенапÑавление оÑибкой) или manual
(ÑпÑавлÑÑÑ Ð¿ÐµÑенапÑавлениÑми вÑÑÑнÑÑ). Ð Chrome по деÑолÑÑ ÑÑÐ¾Ð¸Ñ follow
(Ñанее, в Chrome 47, ÑÑоÑло manual
).referrer
: USVString
, опÑеделÑÑÑÐ°Ñ no-referrer
, client
или a URL. ÐеÑолÑное знаÑение - client
.referrerPolicy
: ÐпÑеделÑÐµÑ Ð·Ð½Ð°Ñение HTTP заголовка ÑеÑеÑеÑа. ÐÐ¾Ð¶ÐµÑ Ð±ÑÑÑ: no-referrer
, no-referrer-when-downgrade
, origin
, origin-when-cross-origin
, unsafe-url
.integrity
: СодеÑÐ¶Ð¸Ñ Ð·Ð½Ð°Ñение ÑелоÑÑноÑÑи ÑÑбÑеÑÑÑÑов (subresource integrity) запÑоÑа (напÑимеÑ, sha256-BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE=
).keepalive
: ÐÑа опÑÐ¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¸ÑполÑзована, ÑÑÐ¾Ð±Ñ ÑазÑеÑиÑÑ Ð·Ð°Ð¿ÑоÑÑ "пеÑежиÑÑ" ÑÑÑаниÑÑ. ÐолÑÑение ÑеÑÑÑÑов Ñ Ñлагом keepalive
- ÑÑо алÑÑеÑнаÑива Navigator.sendBeacon()
API.signal
: ÐкземплÑÑ Ð¾Ð±ÑекÑа AbortSignal
; позволÑÐµÑ ÐºÐ¾Ð¼Ð¼ÑниÑиÑоваÑÑ Ñ fetch запÑоÑом и, еÑли нÑжно, оÑменÑÑÑ ÐµÐ³Ð¾ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ AbortController
.Promise
, ÑодеÑжаÑий Response
обÑÐµÐºÑ (оÑÐ²ÐµÑ Ð½Ð° запÑоÑ).
AbortError
ÐапÑÐ¾Ñ Ð±Ñл оÑменÑн (иÑполÑзÑÑ AbortController.abort()
). TypeError
ÐаÑÐ¸Ð½Ð°Ñ Ñ Ð²ÐµÑÑии Firefox 43, fetch()
завеÑÑиÑÑÑ Ð¾Ñибкой TypeError
, еÑли URL Ð¸Ð¼ÐµÐµÑ Ñакие полномоÑиÑ, как http://user:password@example.com
. ÐÑимеÑ
РнаÑем Fetch Request пÑимеÑе (Ñм. Fetch Request live) Ð¼Ñ ÑоздаÑм новÑй обÑÐµÐºÑ Request
(запÑоÑа), иÑполÑзÑÑ ÑелеванÑнÑй конÑÑÑÑкÑоÑ, а заÑем полÑÑаем его вÑзовом fetch()
. Так как запÑаÑиваемÑй ÑеÑÑÑÑ - изобÑажение, Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¿ÑиÑвоиÑÑ ÐµÐ¼Ñ Ð¿Ð¾Ð´Ñ
одÑÑий MIME Ñип и обÑабоÑаÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñм обÑазом, Ð¼Ñ Ð¿ÑименÑем к оÑвеÑÑ Ð¼ÐµÑод Body.blob()
, поÑле Ñего ÑоздаÑм Ð´Ð»Ñ Ð½ÐµÐ³Ð¾ Object URL и пеÑедаÑм ÐµÑ Ð² ÑÐ»ÐµÐ¼ÐµÐ½Ñ <img>
.
var myImage = document.querySelector("img");
var myRequest = new Request("flowers.jpg");
fetch(myRequest)
.then(function (response) {
return response.blob();
})
.then(function (response) {
var objectURL = URL.createObjectURL(response);
myImage.src = objectURL;
});
РнаÑем Fetch with init then Request пÑимеÑе (Ñм. Fetch Request init live) Ð¼Ñ Ð´ÐµÐ»Ð°ÐµÐ¼ Ñоже Ñамое, за иÑклÑÑением Ñого, ÑÑо пеÑедаÑм в каÑеÑÑве аÑгÑменÑа Ð´Ð»Ñ fetch()
обÑÐµÐºÑ init:
var myImage = document.querySelector('img');
var myHeaders = new Headers();
myHeaders.append('Content-Type', 'image/jpeg');
var myInit = { method: 'GET',
headers: myHeaders,
mode: 'cors',
cache: 'default' };
var myRequest = new Request('flowers.jpg');
fetch(myRequest,myInit).then(function(response) {
...
});
ÐбÑаÑиÑе внимание, ÑÑо обÑÐµÐºÑ init в каÑеÑÑве аÑгÑменÑа можно пеÑедаÑÑ Ð¸ в конÑÑÑÑкÑÐ¾Ñ Request
Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð°Ð½Ð°Ð»Ð¾Ð³Ð¸Ñного ÑезÑлÑÑаÑа, напÑимеÑ:
var myRequest = new Request("flowers.jpg", myInit);
ÐопÑÑÑимо иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ð±ÑекÑа лиÑеÑала в каÑеÑÑве headers
в init
.
var myInit = {
method: "GET",
headers: {
"Content-Type": "image/jpeg",
},
mode: "cors",
cache: "default",
};
var myRequest = new Request("flowers.jpg", myInit);
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
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