code: function Response (req, options) {
        options = options || {}
        this.req = req
        this.xhr = this.req.xhr
        this.text = this.req.method !='HEAD'
       ? this.xhr.responseText
       : null
        this.setStatusProperties(this.xhr.status)
        this.header = this.headers = parseHeader(this.xhr.getAllResponseHeaders())
    // getAllResponseHeaders sometimes falsely returns "" for CORS requests, but
    // getResponseHeader still works. so we get content-type even if getting
    // other headers fails.
        this.header['content-type'] = this.xhr.getResponseHeader('content-type')
        this.setHeaderProperties(this.header)
        this.body = this.req.method != 'HEAD'
      ? this.parseBody(this.text)
      : null
      }
docs: Initialize a new `Response` with the given `xhr`.
  
  - set flags (.ok, .error, etc)
  - parse header
  
  Examples:
  
  Aliasing `superagent` as `request` is nice:
  
  request = superagent;
  
  We can use the promise-like API, or pass callbacks:
  
  request.get('/').end(function(res){});
  request.get('/', function(res){});
  
  Sending data can be chained:
  
  request
  .post('/user')
  .send({ name: 'tj' })
  .end(function(res){});
  
  Or passed to `.send()`:
  
  request
  .post('/user')
  .send({ name: 'tj' }, function(res){});
  
  Or passed to `.post()`:
  
  request
  .post('/user', { name: 'tj' })
  .end(function(res){});
  
  Or further reduced to a single call for simple cases:
  
  request
  .post('/user', { name: 'tj' }, function(res){});
  
  @param {XMLHTTPRequest} xhr
  @param {Object} options
  @api private