Как правильно задать axios.baseUrl в Nuxt, что бы работало и на локалке и на домене?

Изначально было так:

axios: {
    baseURL: process.env.NODE_ENV === 'production'
      ? 'https://site-name.ru'
      : 'http://localhost:3000'
 },

Радости моей не было предела, пока случайно не зашел на www.site-name.ru и обнаружил, что запросы идут на домен без www и блокируются CORS политикой => домен с www становится неработоспособным.
Дальше пробовал:

axios: {
    baseURL: '/'
 },

Но и тут момент - код из nuxtServerInit перестает корректно работать.
nuxtServerInit:

async nuxtServerInit({ dispatch, getters, commit }) {
    const isUserSigned = await dispatch('auth/autoSignin');

    if (isUserSigned) await dispatch('auth/getUserByToken');
}

store/auth:

async getUserByToken({commit, dispatch}) {
    try {
      const user = await this.$axios.$get('/api/auth/getUserByToken');

      if (user && user.id) {
        dispatch('setUser', user);
      } else {
        dispatch('signout', false);
      }

    } catch (e) {
      console.log(e.message);
      dispatch('setUser', null);
      dispatch('signout', false);
    }
},

То есть, приходит ответ с сервера 404, потому что запрос отправляется на http:/api/auth/getUserByToken' (буквально).
С остальными запросами все в порядке, во всяком случае пока что проблема актуальна только для nuxtServerInit.

Что посоветуете?
  • Вопрос задан
  • 1830 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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