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/defaults.js
data = JSON.parse(data);
      } catch (e) {  }
    }
    return data;
  }],
  /**
   * A timeout in milliseconds to abort a request. If set to 0 (default) a
   * timeout is not created.
   */
  timeout: 0,
  xsrfCookieName: 'XSRF-TOKEN',
  xsrfHeaderName: 'X-XSRF-TOKEN',
  maxContentLength: -1,
  validateStatus: function validateStatus(status) {
    return status >= 200 && status < 300;
  }
};
defaults.headers = {
  common: {
    'Accept': 'application/json, text/plain, */*'
  }
};
utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {
  defaults.headers[method] = {};
});
utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
  defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);
});
module.exports = defaults;