Created
September 18, 2015 17:01
-
-
Save saml/d7d4a7df304d94f38cab to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var $aml = (function() { | |
var me = { | |
ajax: AJAX() | |
}; | |
function formURLEncode(args) { | |
var keyVals = []; | |
for (var key in args) { | |
if (args.hasOwnProperty(key)) { | |
keyVals.push(encodeURIComponent(key) + '=' + encodeURIComponent(args[key])); | |
} | |
} | |
return keyVals.join('&'); | |
} | |
function AJAX() { | |
var me = { | |
method: 'GET', | |
url: null, | |
params: null, | |
data: null | |
}; | |
var exported = { | |
method: setMethod, | |
url: setURL, | |
params: setParams, | |
data: setData, | |
exec: exec | |
}; | |
function setMethod(method) { | |
me.method = method; | |
return exported; | |
} | |
function setURL(url) { | |
me.url = url; | |
return exported; | |
} | |
function setParams(params) { | |
me.params = params; | |
return exported; | |
} | |
function setData(data) { | |
me.data = data; | |
return exported; | |
} | |
function exec() { | |
return new Promise(function(resolve, reject) { | |
var xhr = new XMLHttpRequest(); | |
xhr.onload = function() { | |
if (xhr.status >= 200 && xhr.status <= 299) { | |
resolve(xhr.response); | |
} else { | |
reject(xhr.statusText); | |
} | |
}; | |
xhr.onerror = function() { | |
reject(xhr.statusText); | |
}; | |
var uri = me.url; | |
if (me.params) { | |
var encoded = formURLEncode(me.params); | |
var sep = '?'; | |
if (uri.indexOf('?') >= 0) { | |
sep = '&'; | |
} | |
uri += (sep + encoded); | |
} | |
xhr.open(me.method, uri); | |
xhr.send(me.data); | |
}); | |
} | |
return exported; | |
} | |
return me; | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment