Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save Studiodews/90a576663328aa1ee6314339ad59ce18 to your computer and use it in GitHub Desktop.
Save Studiodews/90a576663328aa1ee6314339ad59ce18 to your computer and use it in GitHub Desktop.
Getting remote JSON data with the fetch API
<!DOCTYPE html>
<html lang="en">
<head>
<title>Working with remote data</title>
<meta charset="utf-8"/>
<!-- Polyfill in case your browser does not support the fetch API -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/fetch/0.10.1/fetch.js"></script>
</head>
<body>
<button onclick="search();">Get remote list of users' names and emails using the fetch API</button>
<div id="users"></div>
</body>
</html>
function search() {
var queryURL = "https://jsonplaceholder.typicode.com/users";
fetch(queryURL)
.then(function (response) {
// response.json() returns a json string,
// returning it will convert it
// to a pure JavaScript
// object for the next then's callback
return response.json();
})
.then(function (users) {
// users is a JavaScript object here
displayUsersAsATable(users);
})
.catch(function (error) {
console.log('Error during fetch: ' + error.message);
});
}
function displayUsersAsATable(users) {
// users is a JavaScript object
// empty the div that contains the results
var usersDiv = document.querySelector("#users");
usersDiv.innerHTML = "";
// creates and populate the table with users
var table = document.createElement("table");
// iterate on the array of users
users.forEach(function (currentUser) {
// creates a row
var row = table.insertRow();
// insert cells in the row
var nameCell = row.insertCell();
nameCell.innerHTML = currentUser.name;
var cityCell = row.insertCell();
cityCell.innerHTML = currentUser.address.city;
});
// adds the table to the div
usersDiv.appendChild(table);
}
table {
margin-top: 20px;
}
table, tr, td {
border: 1px solid;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment