Skip to content

Commit 2b85626

Browse files
Baoyx007rubennorte
authored andcommitted
Fixing baseURL not working in interceptors (axios#950)
* Fixing baseURL not working in interceptors * add test for modify base URL in request interceptor
1 parent 6508280 commit 2b85626

3 files changed

Lines changed: 25 additions & 7 deletions

File tree

lib/core/Axios.js

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ var defaults = require('./../defaults');
44
var utils = require('./../utils');
55
var InterceptorManager = require('./InterceptorManager');
66
var dispatchRequest = require('./dispatchRequest');
7-
var isAbsoluteURL = require('./../helpers/isAbsoluteURL');
8-
var combineURLs = require('./../helpers/combineURLs');
97

108
/**
119
* Create a new instance of Axios
@@ -37,11 +35,6 @@ Axios.prototype.request = function request(config) {
3735
config = utils.merge(defaults, this.defaults, { method: 'get' }, config);
3836
config.method = config.method.toLowerCase();
3937

40-
// Support baseURL config
41-
if (config.baseURL && !isAbsoluteURL(config.url)) {
42-
config.url = combineURLs(config.baseURL, config.url);
43-
}
44-
4538
// Hook up interceptors middleware
4639
var chain = [dispatchRequest, undefined];
4740
var promise = Promise.resolve(config);

lib/core/dispatchRequest.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ var utils = require('./../utils');
44
var transformData = require('./transformData');
55
var isCancel = require('../cancel/isCancel');
66
var defaults = require('../defaults');
7+
var isAbsoluteURL = require('./../helpers/isAbsoluteURL');
8+
var combineURLs = require('./../helpers/combineURLs');
79

810
/**
911
* Throws a `Cancel` if cancellation has been requested.
@@ -23,6 +25,11 @@ function throwIfCancellationRequested(config) {
2325
module.exports = function dispatchRequest(config) {
2426
throwIfCancellationRequested(config);
2527

28+
// Support baseURL config
29+
if (config.baseURL && !isAbsoluteURL(config.url)) {
30+
config.url = combineURLs(config.baseURL, config.url);
31+
}
32+
2633
// Ensure headers exist
2734
config.headers = config.headers || {};
2835

test/specs/interceptors.spec.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,4 +252,22 @@ describe('interceptors', function () {
252252
done();
253253
});
254254
});
255+
256+
it('should modify base URL in request interceptor', function (done) {
257+
var instance = axios.create({
258+
baseURL: 'http://test.com/'
259+
});
260+
261+
instance.interceptors.request.use(function (config) {
262+
config.baseURL = 'http://rebase.com/';
263+
return config;
264+
});
265+
266+
instance.get('/foo');
267+
268+
getAjaxRequest().then(function (request) {
269+
expect(request.url).toBe('http://rebase.com/foo');
270+
done();
271+
});
272+
});
255273
});

0 commit comments

Comments
 (0)