### 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_
test/specs/headers.spec.js
});
  });
  it('should preserve content-type if data is false', async function () {
    axios.post('/foo', false);
    await getAjaxRequest().then(function (request) {
      testHeaderValue(request.requestHeaders, 'Content-Type', 'application/x-www-form-urlencoded');
    });
  });
  it('should allow an AxiosHeaders instance to be used as the value of the headers option', async ()=> {
    const instance = axios.create({
      headers: new AxiosHeaders({
        xFoo: 'foo',
        xBar: 'bar'
      })
    });
    instance.get('/foo', {
      headers: {
        XFOO: 'foo2',
        xBaz: 'baz'
      }
    });
    await getAjaxRequest().then(function (request) {
      expect(request.requestHeaders.xFoo).toEqual('foo2');
      expect(request.requestHeaders.xBar).toEqual('bar');
      expect(request.requestHeaders.xBaz).toEqual('baz');
      expect(request.requestHeaders.XFOO).toEqual(undefined);
    });
  });
});