Axios, похоже, случайно добавляет добавочную косую черту к URL некоторых запросов

У меня есть react app frontend, django backend (сейчас делаю урлы без добавочного слеша). Кажется, что axios добавляет добавляющий слеш к url запросов, и я не уверен почему.

моя пользовательская функция axios:

const authAxios = axios.create({
    baseURL: process.env.REACT_APP_API_URL, // "http://localhost"
    headers: {
        'Authorization': token,
    },
});

пример запроса, который работает:

const url = '/books'
try {
   const res = await authAxios.get(url);
} catch (err) {
   console.log({err});
} 
// Backend url hit: "http://localhost/leads"

пример запроса, который не работает:

const url = '/books'
const query = `?page=1&page_size=2`
try {
   const res = await authAxios.get(url + query);
} catch (err) {
   console.log({err});
} 
// Backend url hit: "http://localhost/books/?page=1&page_size=2"  <-- fails 404 because of / after books

Это происходит не только при добавлении параметров запроса. У меня есть и другие URL, которые не работают, например:

"/authors" ---> hitting the backend as "/authors/"
"/verticals" ---> hitting the backend as "/verticals/"

Я предполагаю, что изменение url происходит в axios, потому что на внутреннем сервере нет сообщения о перенаправлении 301, он просто показывает запрос, сделанный к '/verticals/', а затем 404, хотя, возможно, я ошибаюсь. Все, что отображается на бэкенде относительно запроса:

enter image description here

Ошибка ответа axios выглядит следующим образом: enter image description here

В URL запроса нет слеша, но есть в URL ответа. Не знаю, указывает ли это на проблему бэкенда.

Пытаюсь выяснить, в чем причина. Любая помощь будет принята с благодарностью. Спасибо

Вернуться на верх