code: function _buildResponse(xhr, fullResponse) {
      // XMLHttpRequest returns a not very usable single big string with all headers
      var _parseHeaders = function (headers) {
        var parsed = {};
  
        if (headers) {
          headers = headers.trim().split("\n");
          for (var h in headers) {
            if (headers.hasOwnProperty(h)) {
              var header = headers[h].match(/([^:]+):(.*)/);
              parsed[header[1].trim().toLowerCase()] = header[2].trim();
            }
          }
        }
        return parsed;
      };
  
      var headers = _parseHeaders(xhr.getAllResponseHeaders()),
        response = null;
  
      if (xhr.responseText) {
        var contentType = headers['content-type'];
        if (contentType && contentType.indexOf('application/json') !== -1) {
          // try to parse the response if looks like json
          try {
            response = JSON.parse(xhr.responseText);
          } catch (e) {
            response = xhr.responseText;
          }
        } else {
          response = xhr.responseText;
        }
      }
  
      if (fullResponse) {
        response = {
          data: response,
          headers: headers,
          status: xhr.status
        };
  
        // If any errors received, pull them to top level
        if (response.data && response.data.errors) {
          response.errors = response.data.errors;
          delete response.data.errors;
        }
      }
  
      return response;
    }
docs: Helper method used to build the returned response. It parses the JSON 'data' response and wraps the 'status' and 'headers' in an object in case the flag `fullResponse` is enabled as a global in `EVT.settings` or in this particular request. *200 OK* responses without data, return *null*.