Making AJAX calls

// create a function that will take specified URL and return data to us
function makeAjaxRequest(URL, callbackFunction) {
	var httpRequest = new XMLHttpRequest();
	httpRequest.onreadystatechange = function () {
		if (httpRequest.readyState === 4) {
			if (httpRequest.status === 200) {
				var data = JSON.parse(httpRequest.responseText);
				if (callbackFunction) {
					callbackFunction(data);
				}
			}
		}
	};
	httpRequest.open('GET', URL);
	httpRequest.send();
}

//Call function with arguments
makeAjaxRequest('https://dog.ceo/api/breeds/list/all', function (data) {
	console.log(data.message);
});

 

// Working with XML

var request;
if (window.XMLHttpRequest) {
	request = new XMLHttpRequest();
} else {
	request = new ActiveXObject("Microsoft.XMLHTTP");
}
request.open('GET', 'data.xml');
request.onreadystatechange = function() {
	if ((request.readyState===4) && (request.status===200)) {
		console.log(request.responseXML.getElementsByTagName('name')[1].firstChild.nodeValue);
		
		var items = request.responseXML.getElementsByTagName('name');
		var output = '<ul>';
		for (var i = 0; i < items.length; i++) {
			output += '<li>' + items[i].firstChild.nodeValue + '</li>';
		}
		output += '</ul>';
		document.getElementById('update').innerHTML = output;
	}
}
request.send();
//Working with JSON

var mybutton = document.getElementById('loadbutton');
mybutton.onclick = function() {
   var request;
   if (window.XMLHttpRequest) {
      request = new XMLHttpRequest();
   } else {
      request = new ActiveXObject("Microsoft.XMLHTTP");
   }
   request.open('GET', 'data.json');
   request.onreadystatechange = function() {
      if ((request.readyState===4) && (request.status===200)) {
         var items = JSON.parse(request.responseText);
         var output = '<ul>';
         for (var key in items) {
            output += '<li>' + items[key].name + '</li>';
         }
         output += '</ul>';
         document.getElementById('update').innerHTML = output;
      }
   }
   request.send();
} // loadAJAX

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *