If a header has been set as a default, there does not appear to be any way to skip it on an individual request. Setting `null` or `undefined` doesn't do anything.

lib/core/dispatchRequest.js
if (config.cancelToken) {
    config.cancelToken.throwIfRequested();
  }
}
/**
 * Dispatch a request to the server using the configured adapter.
 *
 * @param {object} config The config that is to be used for the request
 * @returns {Promise} The Promise to be fulfilled
 */
module.exports = function dispatchRequest(config) {
  throwIfCancellationRequested(config);
  
  config.headers = config.headers || {};
  
  config.data = transformData(
    config.data,
    config.headers,
    config.transformRequest
  );
  
  config.headers = utils.merge(
    config.headers.common || {},
    config.headers[config.method] || {},
    config.headers
  );
  utils.forEach(
    ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],