DEV Community

Cover image for Ways To Make HTTP Request in Javascript
Benjamin Nwokolo
Benjamin Nwokolo

Posted on

Ways To Make HTTP Request in Javascript

Ways To Make HTTP Request in Javascript

It is Very Crucial To Know How to make HTTP Request to an Endpoint and Being Able to Send or Retrieve or Get Data. Javascript Has Various Ways and methods of Making HTTP Request To Various Server Endpoints and Database.
In This Article, we are Going To Be Discussing the Various Ways to Make HTTP Request In The Javascript Language

1) XMLHttpRequest

XMLHttpRequest is A Built-In Object in Javascript for Making HTTP request From A Web Server. This Was the Only Way and Method Of Making HTTP Request in The Javascript Language Before ES6. We Can Receive and Obtain Data Using HTTP GET Method and We Can Send Data Using HTTP POST Method

In This Example We are Going To Be Making Use of JSON Placeholder API which a free api made for developers for testing
Step 1
We Create a new instance of XMLHttpRequest() Object

//Creating a new instance of XMLHttpRequestObject

const request = new XMLHttpRequest();
Enter fullscreen mode Exit fullscreen mode

Step 2
We Proceed to create a new HTTP Request From a Server Endpoint


//Creating a new instance an XMLHttpRequest Object
const request = new XMLHttpRequest();
//open the request
request.open('GET', 'https://jsonplaceholder.typicode.com/todos/1');
//sending the request 
request.send();

Enter fullscreen mode Exit fullscreen mode

We then Open The Request Using open()method which has Two Parameters which the first Paremeter is the HTTP type / method of request , for this case it is a GET request we are performing.

While the second parameter is the server endpoint from which we want to get data from. We then Send the request using the send()Method

Step 3

We have to track the progress of request to know if the request is successful or not so we add an eventlistener to the request to listen to the readystatechange Event which is been executed when the readyState property of XMLHttpRequest Changes
readyState with the value of 4 Means The request is complete and status of 200 means the request is successful

//Creating a new instance an XMLHttpRequest Object
const request = new XMLHttpRequest();
//open the request
request.open('GET', 'https://jsonplaceholder.typicode.com/todos/1');
//sending the request 
request.send();

request.addEventListener('readystatechange', ()=>{
    if(request.readyState == 4 && request.status == 200){
        console.log(request.responseText);
    } else{
        console.log('error in  getting data');
    }
})
Enter fullscreen mode Exit fullscreen mode

So, We performed and if() statement to check if the readyState is equals to 4 and also if the status is 200 which means our request was successful so we console.log() request.responsetext which is the text(data) received from the server endpoint in which we made our request and also an else to log error message in the console if the request was nit successful. In This Example our endpoint is the JSON Placeholder API .
In Our Console You Would See something like this .

{
    "userId": 1,
    "id": 1,
    "title": "delectus aut autem",
    "completed": false
  }

Enter fullscreen mode Exit fullscreen mode

We have finally and successfully Gotten a Fake id from JSON Placeholder API using XMLHttpRequest

2) Using The Fetch API

Fetch API helps us make to make HTTP Request in a similar manner with XMLHttpRequest but Fetch Makes use of the Promise API .When We make a request using fetch API it returns a promise which is asynchronous in nature .
Fetch API Has one mandatory parameter which is the server-side URL

//Fetch Api
fetch('https://jsonplaceholder.typicode.com/todos/1')
Enter fullscreen mode Exit fullscreen mode
//Fetch Api
fetch('https://jsonplaceholder.typicode.com/todos/1').then((response) =>{
   // it returns a promise
  return response.json();
}).then((response) =>{
    console.log(response);
}).catch((err)=>{
     console.log(err);
})
Enter fullscreen mode Exit fullscreen mode

We tack on the then() method to fetch API which returns our request response and we then log our response to the console. .catch() method helps us catch error in our request if there is a error in our HTTP request.
In Our Browser Console we get an output which is an object :

{userId: 1, id: 1, title: 'delectus aut autem', completed: false}
Enter fullscreen mode Exit fullscreen mode

3) Axois

Axois is a library for making HTTP Requests to various endpoints .Axios is a promise based method of making HTTP Request. A Unique feature of axios is that it returns JSON Data already parsed .Axios makes use of XMLHttpRequest Method under the hood.
Installing Axios
We can make use of axios by installing it ,there are other methods of installing axios but we are going to make use of a CDN in this article

  //Using CDN
 <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
Enter fullscreen mode Exit fullscreen mode

We place this Script tag in the Head Section of the HTML file

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Ways To Make HTTP Request with javascript </title>
    <link rel="stylesheet" href="style.css">
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
</head>
Enter fullscreen mode Exit fullscreen mode

Now we can now proceed to make HTTP Requests using axios

//axios
axios.get('https://jsonplaceholder.typicode.com/todos/1').then((data)=>{
   console.log(data);
}).catch((err)=>{
  console.log(err);
})
Enter fullscreen mode Exit fullscreen mode

We make a GET Request by calling get Method on axios with URL we want to send a request to get data From. It returns a promise
In the browser console we have an object which contains our data :

{data: {…}, status: 200, statusText: '', headers: {…}, config: {…}, …}

Enter fullscreen mode Exit fullscreen mode

4) Using JQuery

jQuery has several methods to make HTTP Requests But for the sake of this tutorial we would be using $.ajax() method .
$.ajax() method is used to make asynchronous HTTP Requests to a specific URL or Endpoint .
To be able to make use of $.ajax() you include its library source file in the head section of your html page

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Enter fullscreen mode Exit fullscreen mode
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Ways To Make HTTP Request with javascript </title>
    <link rel="stylesheet" href="style.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>

Enter fullscreen mode Exit fullscreen mode

Below is the syntax of $.ajax()

$.ajax({
  url: url,
  type: type,
  success: success,
  error : error
});

Enter fullscreen mode Exit fullscreen mode

url: it is the URL / endpoint with which we want make a request to using ajax.

type: it defines the type of HTTP Method in the request

success: it is a callback function fired based on response of the request if it is successful

error: it is a callback function fired based on response of the request if there is an error in the request

$.ajax({
  url: 'https://jsonplaceholder.typicode.com/todos/1',
  type: 'GET',
  success: (res) =>{
     console.log(res);
  },
  error : (err) =>{
    console.log(err);
  },
});

Enter fullscreen mode Exit fullscreen mode

In the browser console you get response of the request which is shown below:

{userId: 1, id: 1, title: 'delectus aut autem', completed: false}
Enter fullscreen mode Exit fullscreen mode

Conclusion

We have learnt various ways to make HTTP Request in javascript . You can use any of the various methods to make request in your projects.Happy Coding !!

Top comments (0)