Slanje/primanje podataka pomoću HTTP requestova
Author
Date Published
Za testiranje slanja/primanja zahtjeva koristimo servis mockapi.io. Zamijenite dio koda u fetch zahtjevu s vlastitim API endpointom nakon kreiranja računa.
GET zahtjev
GET zahtjev se koristi za dohvaćanje podataka sa servera.
Tijelo zahtjeva (body) se ne šalje.
1async function fetchData() {2 try {3 const response = await fetch('https://654cbf0377200d6ba85956f1.mockapi.io/users');45 if (!response.ok) {6 throw new Error(`HTTP error! Status: ${response.status}`);7 }89 const data = await response.json();10 console.log('Fetched data:', data);11 } catch (error) {12 console.error('Error fetching data:', error.message);13 }14}1516fetchData();17
POST zahtjev
POST zahtjev se koristi za slanje podataka serveru.
Potrebno je specificirati zaglavlja (headers) i poslati podatke kao tijelo zahtjeva.
1async function sendData() {2 const formData = {3 name: 'John Doe',4 age: 30,5 gender: 'male',6 };78 try {9 const response = await fetch('https://654cbf0377200d6ba85956f1.mockapi.io/users', {10 method: 'POST',11 headers: {12 'Content-Type': 'application/json',13 },14 body: JSON.stringify(formData),15 });1617 if (!response.ok) {18 throw new Error(`HTTP error! Status: ${response.status}`);19 }2021 const data = await response.json();22 console.log('Data saved:', data);23 } catch (error) {24 console.error('Error sending data:', error.message);25 }26}2728sendData();29
fetch(): Koristi se za HTTP zahtjeve u JavaScriptu.
GET zahtjev:
Za dohvaćanje podataka navodi se samo URL.
Nema potrebe za dodavanjem tijela (body) zahtjeva.
POST zahtjev:
Metoda se specificira kao 'POST'.
U zaglavljima (headers) navodimo tip sadržaja, najčešće application/json.
Podaci koji se šalju moraju biti u JSON formatu, što se postiže pomoću JSON.stringify().
HTTPS Response kodovi
1xx – Informativni odgovori
100 Continue: Klijent može nastaviti s traženjem. Server je zaprimio početak zahtjeva.
2xx – Uspjeh
200 OK: Zahtjev je uspješno obrađen. (Koristi se za GET, POST, PUT, itd.)
201 Created: Resurs je uspješno kreiran. (Obično kod POST zahtjeva.)
204 No Content: Zahtjev je uspješno obrađen, ali nema sadržaja za povrat.
3xx – Preusmjeravanje
301 Moved Permanently: Resurs je trajno premješten na novu lokaciju.
302 Found: Resurs je privremeno dostupan na drugoj lokaciji.
4xx – Greška na strani klijenta
400 Bad Request: Zahtjev je pogrešno formiran ili server ne razumije što klijent traži.
401 Unauthorized: Klijent nije ovlašten za pristup resursu. (Nedostaje autentifikacija.)
403 Forbidden: Klijent nema dozvolu za pristup resursu.
404 Not Found: Traženi resurs nije pronađen na serveru.
5xx – Greška na strani servera
500 Internal Server Error: Došlo je do nepoznate greške na serveru.
502 Bad Gateway: Server je dobio nevažeći odgovor od drugog servera.
503 Service Unavailable: Server trenutno nije dostupan (npr. zbog održavanja).
Za informacije o stanju zahtjeva, koristimo developer tools u browseru (F12).