|
@@ -0,0 +1,61 @@
|
|
|
+var ajax = {};
|
|
|
+ajax.create = function() {
|
|
|
+ if(typeof XMLHttpRequest !== 'undefined') {
|
|
|
+ return new XMLHttpRequest();
|
|
|
+ };
|
|
|
+ var versions = [
|
|
|
+ "MSXML2.XmlHttp.6.0",
|
|
|
+ "MSXML2.XmlHttp.5.0",
|
|
|
+ "MSXML2.XmlHttp.4.0",
|
|
|
+ "MSXML2.XmlHttp.3.0",
|
|
|
+ "MSXML2.XmlHttp.2.0",
|
|
|
+ "Microsoft.XmlHttp"
|
|
|
+ ];
|
|
|
+ var xhr;
|
|
|
+ for(var i = 0; i < versions.length; i++) {
|
|
|
+ try {
|
|
|
+ xhr = new ActiveXObject(versions[i]);
|
|
|
+ break;
|
|
|
+ } catch(e) {
|
|
|
+ // Silent
|
|
|
+ };
|
|
|
+ };
|
|
|
+ return xhr;
|
|
|
+};
|
|
|
+
|
|
|
+ajax.send = function(url, callback, method, data, async) {
|
|
|
+ if(async === undefined) {
|
|
|
+ async = true;
|
|
|
+ };
|
|
|
+ var a = ajax.create();
|
|
|
+ a.open(method, url, async);
|
|
|
+ a.onreadystatechange = function() {
|
|
|
+ // a.readyState:
|
|
|
+ // 0 - UNSENT
|
|
|
+ // 1 - OPENED
|
|
|
+ // 2 - HEADERS_RECEIVED
|
|
|
+ // 3 - LOADING
|
|
|
+ // 4 - DONE
|
|
|
+ callback(method, data, a.readyState, a.status, a.responseText);
|
|
|
+ };
|
|
|
+ if(method == 'POST') {
|
|
|
+ a.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
|
|
|
+ };
|
|
|
+ a.send(data);
|
|
|
+};
|
|
|
+
|
|
|
+ajax.get = function(url, data, callback, async) {
|
|
|
+ var query = [];
|
|
|
+ for(var key in data) {
|
|
|
+ query.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key]));
|
|
|
+ };
|
|
|
+ ajax.send(url + (query.length ? '?' + query.join('&') : ''), callback, 'GET', null, async);
|
|
|
+};
|
|
|
+
|
|
|
+ajax.post = function(url, data, callback, async) {
|
|
|
+ var query = [];
|
|
|
+ for (var key in data) {
|
|
|
+ query.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key]));
|
|
|
+ };
|
|
|
+ ajax.send(url, callback, 'POST', query.join('&'), async);
|
|
|
+};
|