Junior
Co przyjmuje metoda fetch?
sobes.tech AI
Odpowiedź od AI
Metoda fetch przyjmuje jeden obowiązkowy argument — ścieżkę do żądania (RequestInfo lub URL) — oraz jeden opcjonalny argument — obiekt ustawień (RequestInit).
Obowiązkowy argument (input) :
- String: URL zasobu.
- Obiekt
Request: Instancja klasyRequest, która zapewnia bardziej elastyczną konfigurację żądania (nagłówki, metoda itp.).
Opcjonalny argument (init) : Obiekt z polami opisującymi konfigurację żądania. Niektóre często używane pola:
method: Metoda HTTP żądania (GET,POST,PUT,DELETE,OPTIONSitp.).headers: Nagłówki żądania. Może być obiektem klucz-wartość lub instancją klasyHeaders.body: Ciało żądania (dla metod innych niżGETlubHEAD). Może być ciągiem znaków,ArrayBuffer,TypedArray,DataView,Blob,FormData,URLSearchParamslubReadableStream.mode: Tryb żądania (cors,no-cors,same-origin,navigate).credentials: Konfiguracja wysyłania danych uwierzytelniających (omit,same-origin,include).cache: Konfiguracja pamięci podręcznej (default,no-store,reload,no-cache,force-cache,only-if-cached).redirect: Jak obsługiwać przekierowania (follow,error,manual).referrer: Wartość dla nagłówkaReferer.referrerPolicy: Polityka przesyłania nagłówkaReferer.integrity: Wartość dla nagłówkaIntegrity. Używane do integralności podzasobów.keepalive: Wartość boolean wskazująca, czy żądanie powinno pozostać aktywne po zamknięciu strony (np. do wysyłania analiz lub raportów).signal: InstancjaAbortSignaldo anulowania żądania.window: Obiekt Window powiązany z żądaniem (domyślnie bieżące okno).
Przykład użycia:
// Żądanie GET
fetch('/api/users')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Błąd:', error));
// Żądanie POST z ciałem i nagłówkami
fetch('/api/products', {
method: 'POST', // Metoda HTTP
headers: {
'Content-Type': 'application/json', // Typ wysyłanych danych
'Authorization': 'Bearer your_token' // Przykład nagłówka autoryzacji
},
body: JSON.stringify({ name: 'Nowy produkt', price: 100 }) // Ciało żądania
})
.then(response => {
if (!response.ok) {
throw new Error(`Błąd HTTP! status: ${response.status}`);
}
return response.json();
})
.then(data => console.log('Sukces:', data))
.catch(error => console.error('Błąd:', error));