Я проверяю код (написанный кем-то другим), который выполняет простые запросы GET и POST к серверу с использованием axios.
Вроде все работает нормально, кроме единственного запроса к серверу.
Делая следующий запрос,
url = 'api/items';
axios.get(url).then(res => {
// do some work
});
Некоторые биты URL-адреса по какой-то причине удаляются.
Вышеупомянутый запрос должен быть отправлен на
https://test.com/aaa/bbb/api/items
вместо
https://test.com/api/items
Все остальные запросы работают нормально (например, https://test.com/aaa/bbb/api/xxx), но не этот.
Что могло быть причиной этого?
Другие API называются так же?
@Zesky Базовый URL не задан
@NimeshkaSrimal Да, все остальные API вызываются точно так же
Вы не устанавливаете базовый URL-адрес в других вызовах API? Я имею ввиду, они все так работают?
@NimeshkaSrimal Нет, другие работают нормально без настройки почему-то. Разница между этим и другими заключается в том, что он вызывается в модальном окне при нажатии пользователем
модальное окно, а другое выполняется на одной странице с тем же URL-адресом?
@Zesky да, в основном есть индексная страница (index.scala.html), загружаемая в модальном (modal.scala.html) как <div>@modal()</div> внутри индексной страницы. Оба написаны на Twir



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать что-то вроде этого
axios.defaults.baseURL = 'https://api.example.com/';
тогда ты можешь использовать
url = 'api/items';
axios.get(url).then(res => {
// do some work
});
и отправьте запрос на https://api.example.com/api/items
Вы можете проверить Global Настройки Axios Config по умолчанию, чтобы получить дополнительную информацию
Как упоминалось в документации, у вас может быть несколько экземпляров и установить конфигурации по умолчанию для каждого экземпляра следующим образом:
// Set config defaults when creating the instance
const instance = axios.create({
baseURL: 'https://api.example.com'
});
// Alter defaults after instance has been created
instance.defaults.headers.common['Authorization'] = AUTH_TOKEN;
да, я знаю об этом, но я хочу знать, почему все API работают нормально, кроме одного
@d -_- b он может инициализировать каждый экземпляр axios в каждом шаблоне вместо инициализации экземпляра axios для использования во всех шаблонах
Оказалось, что путь к API был установлен на /api/items, а не на api/items.
Этот ведущий / был причиной проблемы.
У кода установлен baseURL? Были ли у образца страницы, выполняющей
get, разные URL-адреса?