### Describe the issue

I set `axios.defaults.headers.common['Content-Type'] = 'application/json'`. When firing a `axios.patch` request (without a config), the request uses `application/x-www-form-urlencoded` instead.

### Example Code

```js
// This does not work as expected:
axios.defaults.headers.common['Content-Type'] = 'application/json'

// This does:
axios.defaults.headers.common['Content-Type'] = 'application/json'
axios.defaults.headers.patch['Content-Type'] = 'application/json'
```


### Expected behavior

I expected POST requests to use `axios.defaults.headers.common`, too.

I think this is where the problem (or intended behaviour) comes from: https://github.com/axios/axios/blob/3f53eb6960f05a1f88409c4b731a40de595cb825/lib/core/dispatchRequest.js#L46

### Axios Version

1.4.0

### Adapter Version

_No response_

### Browser

Firefox

### Browser Version

116.0.3 (64-bit)

### Node.js Version

_No response_

### OS

_No response_

### Additional Library Versions

_No response_

### Additional context/Screenshots

_No response_
lib/defaults/index.js
/**
   * 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,
  maxBodyLength: -1,
  env: {
    FormData: platform.classes.FormData,
    Blob: platform.classes.Blob
  },
  validateStatus: function validateStatus(status) {
    return status >= 200 && status < 300;
  },
  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);
});
export default defaults;