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, хотя, возможно, я ошибаюсь. Все, что отображается на бэкенде относительно запроса:
Ошибка ответа axios выглядит следующим образом:
В URL запроса нет слеша, но есть в URL ответа. Не знаю, указывает ли это на проблему бэкенда.
Пытаюсь выяснить, в чем причина. Любая помощь будет принята с благодарностью. Спасибо