**Describe the bug**

Since I upgrade axios from 0.18.0 to 0.19.0, the requests made to fetch a local file (`file:///`) with a relative path return an error: ```Request failed with status code 0```.  However the web browser will always return a status code 0 when the request success because there is no HTTP server involved. The XHR readyState is also 4, if there was a network error, I believe this one would probably be 0 as well.

**To Reproduce**
```js
// In a HTML file like opened at file:///tmp/axios.html for example
axios.get('./file.ttf', {
  responseType: 'arraybuffer',
}).then((resp) => {
  console.log('OK', resp);
}).catch((err) => {
  if (err.request && err.request.readyState === 4) {
     //  The response here should not be treated as an error
  }
  console.log('ERR', err);
});
```

**Expected behavior**
The request should success and return the arraybuffer (works with axios 0.18.0).

**Environment:**
 - Axios Version: 0.19.0
 - OS: iOS 12.4, OSX 10.14.6
 - Browser: Safari
 - Browser Version: 12.1.2
 - Additional Library Versions: None

**Additional context/Screenshots**
![Screenshot 2019-09-07 at 13 26 37](https://user-images.githubusercontent.com/396537/64474302-b8992800-d173-11e9-999e-5cf19eaf678b.png)
![Screenshot 2019-09-07 at 13 31 10](https://user-images.githubusercontent.com/396537/64474306-ccdd2500-d173-11e9-93da-990fef265a18.png)

test/specs/requests.spec.js
};
    axios('http://thisisnotaserver/foo')
      .then(resolveSpy, rejectSpy)
      .then(finish, finish);
  });
  it('should reject on abort', function (done) {
    var resolveSpy = jasmine.createSpy('resolve');
    var rejectSpy = jasmine.createSpy('reject');
    var finish = function () {
      expect(resolveSpy).not.toHaveBeenCalled();
      expect(rejectSpy).toHaveBeenCalled();
      var reason = rejectSpy.calls.first().args[0];
      expect(reason instanceof Error).toBe(true);
      expect(reason.config.method).toBe('get');
      expect(reason.config.url).toBe('/foo');
      expect(reason.request).toEqual(jasmine.any(XMLHttpRequest));
      done();
    };
    axios('/foo')
      .then(resolveSpy, rejectSpy)
      .then(finish, finish);
    getAjaxRequest().then(function (request) {
      request.abort();
    });
  });
  it('should reject when validateStatus returns false', function (done) {
    var resolveSpy = jasmine.createSpy('resolve');
    var rejectSpy = jasmine.createSpy('reject');
    axios('/foo', {
      validateStatus: function (status) {