Need to get data from an API or send form data to a server? Say goodbye to old-school XMLHttpRequest
— the modern and easier way is with the Fetch API. It’s built into JavaScript and helps you make HTTP requests (GET, POST, etc.) using promises. In this blog, you’ll learn how to use the Fetch API step by step, with real-life examples.
🧠 What is the Fetch API?
The Fetch API is a modern way to make HTTP requests (like getting data from a server or sending data to one). It returns a Promise, making it easier to work with using .then()
or async/await
.
✅ Basic Syntax
javascriptCopyEditfetch('https://api.example.com/data')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
🧪 Example: GET Request to Public API
javascriptCopyEditfetch('https://api.chucknorris.io/jokes/random')
.then(res => res.json())
.then(data => {
console.log("Random Joke:", data.value);
});
💬 This makes a GET request to fetch a random Chuck Norris joke.
📤 Sending POST Request
javascriptCopyEditfetch('https://jsonplaceholder.typicode.com/posts', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'CodeyNest Blog',
body: 'Learning Fetch API!',
userId: 1
}),
})
.then(res => res.json())
.then(data => console.log('Posted:', data));
📌 This sends data to the server in JSON format.
🔐 Setting Headers
Use headers to send authentication tokens or content types:
javascriptCopyEditheaders: {
'Content-Type': 'application/json',
'Authorization': 'Bearer yourTokenHere'
}
🧵 Using Fetch with Async/Await
javascriptCopyEditasync function loadUser() {
try {
const res = await fetch('https://jsonplaceholder.typicode.com/users/1');
const user = await res.json();
console.log(user.name);
} catch (err) {
console.error("Failed to load user:", err);
}
}
🧰 Real-World Use Cases
- Loading blog content from CMS
- Submitting forms via AJAX
- Fetching product data for eCommerce
- Sending login or signup data
- Displaying weather, jokes, news, etc.
⚠️ Common Errors & Fixes
Problem | Reason | Fix |
---|---|---|
CORS error | Cross-origin issue | Make sure API allows it or use a proxy |
404/500 | Server error | Check API endpoint |
.json() fails | Not valid JSON | Use .text() or check server response |
Conclusion:
The Fetch API makes working with web servers much easier and cleaner. Whether you’re building a blog, app, or dashboard, you’ll likely use fetch often. Combine it with async/await
for a smooth and modern JavaScript experience.
🔄 Try this: Build a weather app using the Fetch API and OpenWeatherMap!