another_dream
@another_dream
Backend-разработчик, Laravel/ZF2/Yii2

Как правильно инициализировать в проекте дефолтные настройки для одного из модулей?

Имеется n-количество модулей, по одному на каждую страницу приложения.
Пример:
- user-profile.js
- catalog.js
- conversations.js
- login.js

На каждой странице используется модуль Axios в качестве обёртки для XMLHttpRequest.
Чтобы корректно распозновать AJAX запрос на бэкенде приходится прописывать для этого модуля дефолтный конфиг:
axios.defaults.headers.common = {
    'X-CSRF-TOKEN': window.csrfToken,
    'X-Requested-With': 'XMLHttpRequest'
};

В каком одном месте прописать этот конфиг и как потом в каждом из модулей реюзать эту функциональность?

Спасибо.
  • Вопрос задан
  • 268 просмотров
Решения вопроса 1
maxfarseer
@maxfarseer
https://maxpfrontend.ru, обучаю реакту и компании
Указать его в самом начале (то есть "вверху" приложения, там где он первый раз "появляется"), где применяется axios / либо где-вы его ради этого импортнете. Разве так не сработает?

Либо такой вариант:
function buildHeaders() {
  const authToken = localStorage.getItem('token')
  return { ...defaultHeaders, Authorization: authToken }
}


export function httpGet(url) { //экспортируете функцию для будущих вызовов
  return fetch(url, { // я использую fetch, но для axios сделать, думаю вы сможете
    headers: buildHeaders(), // те самые заголовки, которые нужны в каждом запросе
  })
  .then(checkStatus) // это уже не важно, у меня в коде просто далее идет еще несколько проверок общих
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы