From accd1b24485901545c3d2afd81b65a6582a48211 Mon Sep 17 00:00:00 2001 From: "haven.bao" Date: Fri, 9 Jun 2017 16:38:37 +0800 Subject: [PATCH 1/2] Fixing baseURL not working in interceptors --- lib/core/Axios.js | 7 ------- lib/core/dispatchRequest.js | 7 +++++++ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/core/Axios.js b/lib/core/Axios.js index 57098533fd..f1af3e7bf6 100644 --- a/lib/core/Axios.js +++ b/lib/core/Axios.js @@ -4,8 +4,6 @@ var defaults = require('./../defaults'); var utils = require('./../utils'); var InterceptorManager = require('./InterceptorManager'); var dispatchRequest = require('./dispatchRequest'); -var isAbsoluteURL = require('./../helpers/isAbsoluteURL'); -var combineURLs = require('./../helpers/combineURLs'); /** * Create a new instance of Axios @@ -37,11 +35,6 @@ Axios.prototype.request = function request(config) { config = utils.merge(defaults, this.defaults, { method: 'get' }, config); config.method = config.method.toLowerCase(); - // Support baseURL config - if (config.baseURL && !isAbsoluteURL(config.url)) { - config.url = combineURLs(config.baseURL, config.url); - } - // Hook up interceptors middleware var chain = [dispatchRequest, undefined]; var promise = Promise.resolve(config); diff --git a/lib/core/dispatchRequest.js b/lib/core/dispatchRequest.js index b5111017d1..9ea70f2287 100644 --- a/lib/core/dispatchRequest.js +++ b/lib/core/dispatchRequest.js @@ -4,6 +4,8 @@ var utils = require('./../utils'); var transformData = require('./transformData'); var isCancel = require('../cancel/isCancel'); var defaults = require('../defaults'); +var isAbsoluteURL = require('./../helpers/isAbsoluteURL'); +var combineURLs = require('./../helpers/combineURLs'); /** * Throws a `Cancel` if cancellation has been requested. @@ -23,6 +25,11 @@ function throwIfCancellationRequested(config) { module.exports = function dispatchRequest(config) { throwIfCancellationRequested(config); + // Support baseURL config + if (config.baseURL && !isAbsoluteURL(config.url)) { + config.url = combineURLs(config.baseURL, config.url); + } + // Ensure headers exist config.headers = config.headers || {}; From fe0522ecf6a966f02c977601c397fbbc26e81249 Mon Sep 17 00:00:00 2001 From: "haven.bao" Date: Fri, 9 Jun 2017 17:16:29 +0800 Subject: [PATCH 2/2] add test for modify base URL in request interceptor --- test/specs/interceptors.spec.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/test/specs/interceptors.spec.js b/test/specs/interceptors.spec.js index 76dee5bbc5..effbcde258 100644 --- a/test/specs/interceptors.spec.js +++ b/test/specs/interceptors.spec.js @@ -252,4 +252,22 @@ describe('interceptors', function () { done(); }); }); + + it('should modify base URL in request interceptor', function (done) { + var instance = axios.create({ + baseURL: 'http://test.com/' + }); + + instance.interceptors.request.use(function (config) { + config.baseURL = 'http://rebase.com/'; + return config; + }); + + instance.get('/foo'); + + getAjaxRequest().then(function (request) { + expect(request.url).toBe('http://rebase.com/foo'); + done(); + }); + }); });