'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; function addQueryString(url, params) { if (params && (typeof params === 'undefined' ? 'undefined' : _typeof(params)) === 'object') { var queryString = '', e = encodeURIComponent; // Must encode data for (var paramName in params) { queryString += '&' + e(paramName) + '=' + e(params[paramName]); } if (!queryString) { return url; } url = url + (url.indexOf('?') !== -1 ? '&' : '?') + queryString.slice(1); } return url; } // https://gist.github.com/Xeoncross/7663273 function ajax(url, options, callback, data, cache) { if (data && (typeof data === 'undefined' ? 'undefined' : _typeof(data)) === 'object') { if (!cache) { data['_t'] = new Date(); } // URL encoded form data must be in querystring format data = addQueryString('', data).slice(1); } if (options.queryStringParams) { url = addQueryString(url, options.queryStringParams); } try { var x; if (XMLHttpRequest) { x = new XMLHttpRequest(); } else { x = new ActiveXObject('MSXML2.XMLHTTP.3.0'); } x.open(data ? 'POST' : 'GET', url, 1); if (!options.crossDomain) { x.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); } x.withCredentials = !!options.withCredentials; if (data) { x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); } if (x.overrideMimeType) { x.overrideMimeType("application/json"); } var h = options.customHeaders; if (h) { for (var i in h) { x.setRequestHeader(i, h[i]); } } x.onreadystatechange = function () { x.readyState > 3 && callback && callback(x.responseText, x); }; x.send(data); } catch (e) { console && console.log(e); } } exports.default = ajax;