docs: function ajax(url, options, callback, data, cache) {
    try {
      var x = new (XMLHttpRequest || ActiveXObject)('MSXML2.XMLHTTP.3.0');
      x.open(data ? 'POST' : 'GET', url, 1);
      if (!options.crossDomain) {
        x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
      }
      if (options.authorize && options.apiKey) {
        x.setRequestHeader('Authorization', options.apiKey);
      }
      if (data || options.setContentTypeJSON) {
        x.setRequestHeader('Content-type', 'application/json');
      }
      x.onreadystatechange = function() {
        x.readyState > 3 && callback && callback(x.responseText, x);
      };
      x.send(JSON.stringify(data));
    } catch (e) {
      window.console && console.log(e);
    }
  }