aboutsummaryrefslogtreecommitdiff
path: root/dists/networking/wwwroot/ajax.js
diff options
context:
space:
mode:
Diffstat (limited to 'dists/networking/wwwroot/ajax.js')
-rw-r--r--dists/networking/wwwroot/ajax.js48
1 files changed, 48 insertions, 0 deletions
diff --git a/dists/networking/wwwroot/ajax.js b/dists/networking/wwwroot/ajax.js
new file mode 100644
index 0000000000..c01d7e93fc
--- /dev/null
+++ b/dists/networking/wwwroot/ajax.js
@@ -0,0 +1,48 @@
+// the following is snippet from http://stackoverflow.com/a/18078705
+// I changed a few things though
+
+var ajax = {};
+ajax.x = function () { return new XMLHttpRequest(); }; // "no one uses IE6"
+
+ajax.send = function (url, callback, errorCallback, method, data, async) {
+ if (async === undefined) async = true;
+
+ var x = ajax.x();
+ x.open(method, url, async);
+ x.onreadystatechange = function () {
+ if (x.readyState == XMLHttpRequest.DONE) {
+ if (x.status == 200)
+ callback(x.responseText);
+ else
+ errorCallback(x);
+ }
+ };
+ if (method == 'POST') {
+ x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
+ }
+ x.send(data)
+};
+
+ajax.get = function (url, data, callback, errorCallback, async) {
+ var query = [];
+ for (var key in data) {
+ query.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key]));
+ }
+ ajax.send(url + (query.length ? '?' + query.join('&') : ''), callback, errorCallback, 'GET', null, async)
+};
+
+ajax.post = function (url, data, callback, errorCallback, async) {
+ var query = [];
+ for (var key in data) {
+ query.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key]));
+ }
+ ajax.send(url, callback, errorCallback, 'POST', query.join('&'), async)
+};
+
+ajax.getAndParseJson = function (url, data, callback) {
+ ajax.get(
+ url, data,
+ function (responseText) { callback(JSON.parse(responseText)); },
+ function (x) { console.log("error: " + x.status); }
+ );
+}; \ No newline at end of file