AJAX Requests using Native JS

Making AJAX Requests using Native JavaScript

  • JavaScript has a built-in object called XMLHttpRequest that can be used to make AJAX requests (i.e. Client-side HTTP requests made in the background which do not require a page refresh)

  • XMLHttpRequest is not normally used due to large amount to code needed to make requests; libraries jQuery (using $.ajax(), $.get(), etc) and others are often used in place of XMLHttpRequest


Example

  • Here’s an example of what an AJAX request using XMLHttpRequest looks like:
function logResponse(data) {
  console.log('response complete ====>', data)
}

function get(url, callback) {
  console.log('step 2: declare request.')
  const request = new XMLHttpRequest()

  console.log('Step 3: open request.')
  request.open('GET', url, true);

  console.log(
    'Step 4: set the request state change handler to call the callback when status = 200',
  )

  request.onreadystatechange = function() {
    if (request.readyState === 4 && request.status === 200) {
      callback(request);
    }
  }

  console.log('Step 5: send request.')
  request.send()
}

console.log('Step 1: invoke AJAX function.')
get(
  'http://api.giphy.com/v1/gifs/search?q=smooth&api_key=2qqBvRkz56JiTUcMbOJbak5VRRLEbV84',
  logResponse,
)

console.log('Step 6: End of JS file.')

JS Bin on jsbin.com