JavaScript:
Wysyłanie żądania HTTP
Jak to zrobić:
Aby wysłać zapytanie HTTP w JavaScript, możemy użyć wbudowanego interfejsu fetch albo starszego XMLHttpRequest. Oto przykład użycia fetch:
// GET request używając fetch()
fetch('https://api.example.com/data')
.then(response => {
if (!response.ok) {
throw new Error('Network response was not ok ' + response.statusText);
}
return response.json();
})
.then(data => console.log(data))
.catch(error => console.error('There has been a problem with your fetch operation:', error));
// POST request używając fetch()
fetch('https://api.example.com/data', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ key: 'value' }),
})
.then(response => response.json())
.then(data => console.log('Success:', data))
.catch((error) => console.error('Error:', error));Wynik:
Success: { ... odpowiedź serwera ... }
Error: ... informacje o błędzie ...Deep Dive
Wczesne metody AJAX, jak XMLHttpRequest, były standardem przez lata, ale miały swoje wady - brak obietnic (promises), skomplikowany API. fetch pojawił się w języku JavaScript, by to ułatwić, oferuje prostszy sposób na asynchroniczne żądania HTTP i obsługuje obietnice.
Alternatywnie, w Node.js i niektórych aplikacjach klienckich możemy użyć biblioteki axios. Jest ona oparta na promises i często uważana za bardziej czytelną:
const axios = require('axios');
// Przykład z axios
axios.get('https://api.example.com/data')
.then(response => console.log(response.data))
.catch(error => console.log(error));Warto wiedzieć, że każdy z tych sposobów radzi sobie z różnymi aspektami bezpieczeństwa, jak polityka CORS, różnią się także w obsłudze przerywania zapytań i streamingu.
Zobacz także
- Dokumentacja MDN dla
fetch: MDN - Fetch - Dokumentacja dla
axios: Axios on GitHub - Przewodnik po CORS: MDN - CORS