Skip to content

Instantly share code, notes, and snippets.

@atkvishnu
Last active October 25, 2021 19:30
Show Gist options
  • Save atkvishnu/fd6ae480401e859c01be29de8186900b to your computer and use it in GitHub Desktop.
Save atkvishnu/fd6ae480401e859c01be29de8186900b to your computer and use it in GitHub Desktop.
AJAX object
(function (global) {
// Set up a namespace for our utility
var ajaxUtils = {};
// Returns an HTTP request object
function getRequestObject() {
if (global.XMLHttpRequest) {
return (new XMLHttpRequest());
}
else if (global.ActiveXObject) {
// For very old IE browsers (optional)
return (new ActiveXObject("Microsoft.XMLHTTP"));
}
else {
global.alert("Ajax is not supported!");
return(null);
}
}
// Makes an Ajax GET request to 'requestUrl'
ajaxUtils.sendGetRequest =
function(requestUrl, responseHandler) {
var request = getRequestObject();
request.onreadystatechange =
function() {
handleResponse(request, responseHandler);
};
request.open("GET", requestUrl, true);
request.send(null); // for POST only
};
// Only calls user provided 'responseHandler'
// function if response is ready
// and not an error
function handleResponse(request,
responseHandler) {
if ((request.readyState == 4) &&
(request.status == 200)) {
responseHandler(request);
}
}
// Expose utility to the global object
global.$ajaxUtils = ajaxUtils;
})(window);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment