Skip to content

Commit

Permalink
Add support for baseURL parameter
Browse files Browse the repository at this point in the history
  • Loading branch information
nickuraltsev committed Nov 22, 2015
1 parent 20a25a2 commit 435636c
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 0 deletions.
1 change: 1 addition & 0 deletions axios.d.ts
Expand Up @@ -49,6 +49,7 @@ declare module axios {
xsrfCookieName?: string;
xsrfHeaderName?: string;
paramsSerializer?: (params: any) => string;
baseURL?: string;
}

interface RequestOptions extends InstanceOptions {
Expand Down
6 changes: 6 additions & 0 deletions lib/axios.js
Expand Up @@ -4,6 +4,8 @@ var defaults = require('./defaults');
var utils = require('./utils');
var dispatchRequest = require('./core/dispatchRequest');
var InterceptorManager = require('./core/InterceptorManager');
var isAbsoluteURL = require('./helpers/isAbsoluteURL');
var combineURLs = require('./helpers/combineURLs');

function Axios (defaultConfig) {
this.defaultConfig = utils.merge({
Expand All @@ -29,6 +31,10 @@ Axios.prototype.request = function (config) {

config = utils.merge(this.defaultConfig, { method: 'get' }, config);

if (config.baseURL && !isAbsoluteURL(config.url)) {
config.url = combineURLs(config.baseURL, config.url);
}

// Don't allow overriding defaults.withCredentials
config.withCredentials = config.withCredentials || defaults.withCredentials;

Expand Down
38 changes: 38 additions & 0 deletions test/specs/options.spec.js
Expand Up @@ -78,4 +78,42 @@ describe('options', function () {
done();
}, 0);
});

it('should accept base URL', function (done) {
var request;

const instance = axios.create({
baseURL: 'http://test.com/'
});

instance.request({
url: '/foo'
});

setTimeout(function () {
request = jasmine.Ajax.requests.mostRecent();

expect(request.url).toBe('http://test.com/foo');
done();
}, 0);
});

it('should ignore base URL if request URL is absolute', function (done) {
var request;

const instance = axios.create({
baseURL: 'http://someurl.com/'
});

instance.request({
url: 'http://someotherurl.com/'
});

setTimeout(function () {
request = jasmine.Ajax.requests.mostRecent();

expect(request.url).toBe('http://someotherurl.com/');
done();
}, 0);
});
});

0 comments on commit 435636c

Please sign in to comment.