Junior
Ką priima fetch metodas?
sobes.tech AI
Atsakymas iš AI
fetch metodas priima vieną būtiną argumentą — užklausos kelią (RequestInfo arba URL) — ir vieną pasirinktą argumentą — nustatymų objektą (RequestInit).
Būtinas argumentas (input):
- Eilutė: išteklių URL.
Requestobjektas:Requestklasės pavyzdys, kuris leidžia lankstesnį užklausos nustatymą (antraštės, metodas ir kt.).
Pasirinktas argumentas (init): Objektas su laukais, apibūdinančiais užklausos nustatymus. Kai kurie dažnai naudojami laukai:
method: HTTP metodas (GET,POST,PUT,DELETE,OPTIONSir kt.).headers: Užklausos antraštės. Gali būti rakto-vertės objektas arbaHeadersklasės pavyzdys.body: Užklausos kūnas (skirtas metodams, išskyrusGETarHEAD). Gali būti eilutė,ArrayBuffer,TypedArray,DataView,Blob,FormData,URLSearchParamsarbaReadableStream.mode: Užklausos režimas (cors,no-cors,same-origin,navigate).credentials: Paskirties duomenų siuntimo nustatymai (omit,same-origin,include).cache: Klaidų kaupimo nustatymai (default,no-store,reload,no-cache,force-cache,only-if-cached).redirect: Kaip tvarkyti peradresavimus (follow,error,manual).referrer: ReikšmėRefererantraštei.referrerPolicy:Refererantraštės perdavimo politika.integrity:Integrityantraštės reikšmė. Naudojama Subresource Integrity.keepalive: Boolean reikšmė, nurodanti, ar užklausa turi likti aktyvi po puslapio užbaigimo (analitikai ar ataskaitoms siųsti).signal:AbortSignalpavyzdys užklausos atšaukimui.window:Windowobjektas, su kuriuo susijusi užklausa (numatyta, dabartinis langas).
Pavyzdys:
// GET užklausa
fetch('/api/users')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Klaida:', error));
// POST užklausa su kūnu ir antraštėmis
fetch('/api/products', {
method: 'POST', // HTTP metodas
headers: {
'Content-Type': 'application/json', // Duomenų tipas
'Authorization': 'Bearer your_token' // Pavyzdys autorizacijos antraštės
},
body: JSON.stringify({ name: 'Naujas produktas', price: 100 }) // Užklausos kūnas
})
.then(response => {
if (!response.ok) {
throw new Error(`HTTP klaida! statusas: ${response.status}`);
}
return response.json();
})
.then(data => console.log('Sėkmė:', data))
.catch(error => console.error('Klaida:', error));