2
0
mirror of https://github.com/tenrok/axios.git synced 2026-06-14 18:42:33 +03:00

feat: Add config for ignoring absolute URLs (#5902) (#6192)

* fix: prevent request url override

prevent request URL from overriding preconfigured base URL

BREAKING CHANGE: code relying on the above will now combine the URLs instead of prefer request URL

* feat: add config option for allowing absolute URLs

* fix: add default value for allowAbsoluteUrls in buildFullPath

* fix: typo in flow control when setting allowAbsoluteUrls

* feat: update tests supporting issue #5902 functionality

* feat: update README.md with allowAbsoluteUrls

* fix: properly group conditions in buildFullPath.js to avoid undefined error when baseUrl undefined

* Update README.md fix typo

* fix: update build full path logic to address failing test case

* fix: update base URL test

* fix: remove problem test (works locally, will not work in the pipeline)

* fix: update https test to use github.com instead of google.com

* fix: revert previous commit

* fix: add back problem test

* chore: remove un-needed passed var to URL class instanciation

---------

Co-authored-by: Austin Ryan Lawson <ryan.lawson2@gmail.com>
Co-authored-by: Jay <jasonsaayman@gmail.com>
This commit is contained in:
Michael Toscano
2025-02-12 04:09:24 -05:00
committed by GitHub
parent 4a3e26cf65
commit 32c7bcc0f2
5 changed files with 42 additions and 8 deletions
+5 -1
View File
@@ -5,10 +5,14 @@ describe('helpers::buildFullPath', function () {
expect(buildFullPath('https://api.github.com', '/users')).toBe('https://api.github.com/users');
});
it('should return the requestedURL when it is absolute', function () {
it('should not combine the URLs when the requestedURL is absolute', function () {
expect(buildFullPath('https://api.github.com', 'https://api.example.com/users')).toBe('https://api.example.com/users');
});
it('should combine the URLs when the requestedURL is absolute and allowAbsoluteUrls is false', function () {
expect(buildFullPath('https://api.github.com', 'https://api.example.com/users', false)).toBe('https://api.github.com/https://api.example.com/users');
});
it('should not combine URLs when the baseURL is not configured', function () {
expect(buildFullPath(undefined, '/users')).toBe('/users');
});
+18 -3
View File
@@ -1,4 +1,5 @@
import AxiosHeaders from "../../lib/core/AxiosHeaders.js";
// import AxiosHeaders from "../../lib/core/AxiosHeaders.js";
// import isAbsoluteURL from '../../lib/helpers/isAbsoluteURL.js';
describe('options', function () {
beforeEach(function () {
@@ -63,8 +64,7 @@ describe('options', function () {
baseURL: 'http://test.com/'
});
instance.get('/foo');
instance.get('/foo')
getAjaxRequest().then(function (request) {
expect(request.url).toBe('http://test.com/foo');
done();
@@ -100,6 +100,21 @@ describe('options', function () {
});
});
it('should combine the URLs if base url and request url exist and allowAbsoluteUrls is false', function (done) {
const instance = axios.create({
baseURL: 'http://someurl.com/',
allowAbsoluteUrls: false
});
instance.get('http://someotherurl.com/');
getAjaxRequest().then(function (request) {
expect(request.url).toBe('http://someotherurl.com/');
done();
});
});
it('should change only the baseURL of the specified instance', function() {
const instance1 = axios.create();
const instance2 = axios.create();