In [./lib/core/Axios.js](https://github.com/axios/axios/blob/master/lib/core/Axios.js#L35) 

```js
config = utils.merge(defaults, this.defaults, { method: 'get' }, config);
```
The method is always overwritten with the ` { method: 'get' }`, so you are forced to pass the method in each request, like the following: 
```js
const myAlwaysPostAPI = axios.create({
  baseURL: 'http://localhost'
  url    : '/myResource',
});

myAlwaysPostAPI({
  method: 'post', //always forced to pass this in each API call
  data      : {key: 'value'}
});

```
this also affects 
```
myAPI.defaults.method = 'post'; //does NOT work
```
### Expected Behavier
```js
const myAlwaysPostAPI = axios.create({
  baseURL: 'http://localhost'
  url    : '/myResource',
  method: 'post'
});

myAlwaysPostAPI({
  data: {key: 'value'}
});
```


I think the solution is to move the default method to defaults file, will follow this issue with a PR for that.
lib/core/Axios.js
this.defaults = instanceConfig;
  this.interceptors = {
    request: new InterceptorManager(),
    response: new InterceptorManager()
  };
}
/**
 * Dispatch a request
 *
 * @param {Object} config The config specific for this request (merged with this.defaults)
 */
Axios.prototype.request = function request(config) {
  
  
  if (typeof config === 'string') {
    config = utils.merge({
      url: arguments[0]
    }, arguments[1]);
  }
  config = utils.merge(defaults, {method: 'get'}, this.defaults, config);
  config.method = config.method.toLowerCase();
  
  var chain = [dispatchRequest, undefined];
  var promise = Promise.resolve(config);
  this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {
    chain.unshift(interceptor.fulfilled, interceptor.rejected);