### Describe the bug

After upgrading msw from 1.x to 2.x `FormData` upload stopped working in tests. Looking at the debugging output, Axios doesn't append the `boundary` to the `Content-Type` header anymore.

The MSW team checked [1] this already on their side.

I tried to append the boundary manually to the header for debugging purposes, but that revealed another issue:
```
{ "Content-Type": "multipart/form-data; boundary=abc" }
```
ends in
```
Content-Type: multipart/form-databoundary=abc
```


[1] https://github.com/mswjs/msw/issues/1835


### To Reproduce

Checkout the msw reproducer at [1] and
```
cd examples/with-vitest
npm install
npm test
```


[1] https://github.com/pschyma/msw-examples/tree/axios-formdata-reproducer

### Code snippet

_No response_

### Expected behavior

As with msw the `boundary` is appended to `Content-Type` header.

### Axios Version

1.6.0

### Adapter Version

XHR

### Browser

jsdom

### Browser Version

_No response_

### Node.js Version

18.8.2

### OS

Linux

### Additional Library Versions

```bash
msw 2.0.x
vitest 0.34.6
```


### Additional context/Screenshots

_No response_
lib/adapters/xhr.js
if (config.cancelToken) {
        config.cancelToken.unsubscribe(onCanceled);
      }
      if (config.signal) {
        config.signal.removeEventListener('abort', onCanceled);
      }
    }
    let contentType;
    if (utils.isFormData(requestData)) {
      if (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv) {
        requestHeaders.setContentType(false); 
      } else if(!requestHeaders.getContentType(/^\s*multipart\/form-data/)){
        requestHeaders.setContentType('multipart/form-data'); 
      } else if(utils.isString(contentType = requestHeaders.getContentType())){
        
        requestHeaders.setContentType(contentType.replace(/^\s*(multipart\/form-data);+/, '$1'))
      }
    }
    let request = new XMLHttpRequest();
    
    if (config.auth) {
      const username = config.auth.username || '';
      const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';
      requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));
    }
    const fullPath = buildFullPath(config.baseURL, config.url);
    request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);
    
    request.timeout = config.timeout;
    function onloadend() {