Size: a a a

Nuxt.js — русскоговорящее сообщество

2020 April 02

ИС

Илья Салмасов in Nuxt.js — русскоговорящее сообщество
Алексей
Всем привет! А как кто устанавливает baseURL на API динамически с nuxt/axios?
Ссылка загружается из переменной среды динамически
async nuxtServerInit ({ state, commit }) {
   if (process.server) {
     commit('setEnv', {
       URL: process.env.BITCART_ADMIN_URL || 'http://localhost:8000'
     })
   }
}
А устанавливаю я в axios через плагин
plugins/axios.js
export default ({ store, $axios }) => {
 $axios.defaults.baseURL = store.state.env.URL
}
Но так не работает, nuxt/auth иногда отсылает запросы на url по умолчанию, из-за этого(скорее всего на стороне сервера) происходит редирект, и после обновления страницы юзера на /login перенаправляет
С обычным axios'ом все работает, через axios.create+inject, но тут нет
в плагине делаем
источник

А

Алексей in Nuxt.js — русскоговорящее сообщество
Илья Салмасов
в плагине делаем
Так уже
источник

А

Алексей in Nuxt.js — русскоговорящее сообщество
DreaMinder
внутренности любых модулей, сервисы\репозитории\хелперы отдельные от вью
Да вроде бы можно
https://github.com/nuxt/nuxt.js/issues/2005
источник

D

DreaMinder in Nuxt.js — русскоговорящее сообщество
до инициализации стора? не думаю
источник

D

DreaMinder in Nuxt.js — русскоговорящее сообщество
думаешь у людей зря бомбит? https://github.com/nuxt/nuxt.js/issues/5100
источник

А

Алексей in Nuxt.js — русскоговорящее сообщество
DreaMinder
до инициализации стора? не думаю
Там предлагают сделать конструктор и туда передавать объект стора) Не знаю
Если бы увидел наглядный пример, пошаманил бы
источник

ИС

Илья Салмасов in Nuxt.js — русскоговорящее сообщество
Алексей
Там предлагают сделать конструктор и туда передавать объект стора) Не знаю
Если бы увидел наглядный пример, пошаманил бы
а в чем проблема делать это в плагине?
источник

А

Алексей in Nuxt.js — русскоговорящее сообщество
Илья Салмасов
а в чем проблема делать это в плагине?
😐
источник

ИС

Илья Салмасов in Nuxt.js — русскоговорящее сообщество
ну так проблема как раз не в $axios модуле, а в $auth модуле
источник

А

Алексей in Nuxt.js — русскоговорящее сообщество
Илья Салмасов
ну так проблема как раз не в $axios модуле, а в $auth модуле
)) Там проблем полно, но там дело в том, что store.state.env.URL undefined иногда, дело не в модуле
источник

ИС

Илья Салмасов in Nuxt.js — русскоговорящее сообщество
а как .env.url задаете?
источник

А

Алексей in Nuxt.js — русскоговорящее сообщество
Алексей
Всем привет! А как кто устанавливает baseURL на API динамически с nuxt/axios?
Ссылка загружается из переменной среды динамически
async nuxtServerInit ({ state, commit }) {
   if (process.server) {
     commit('setEnv', {
       URL: process.env.BITCART_ADMIN_URL || 'http://localhost:8000'
     })
   }
}
А устанавливаю я в axios через плагин
plugins/axios.js
export default ({ store, $axios }) => {
 $axios.defaults.baseURL = store.state.env.URL
}
Но так не работает, nuxt/auth иногда отсылает запросы на url по умолчанию, из-за этого(скорее всего на стороне сервера) происходит редирект, и после обновления страницы юзера на /login перенаправляет
С обычным axios'ом все работает, через axios.create+inject, но тут нет
Через commit
источник

ИС

Илья Салмасов in Nuxt.js — русскоговорящее сообщество
ну код бы
источник

А

Алексей in Nuxt.js — русскоговорящее сообщество
Алексей
Всем привет! А как кто устанавливает baseURL на API динамически с nuxt/axios?
Ссылка загружается из переменной среды динамически
async nuxtServerInit ({ state, commit }) {
   if (process.server) {
     commit('setEnv', {
       URL: process.env.BITCART_ADMIN_URL || 'http://localhost:8000'
     })
   }
}
А устанавливаю я в axios через плагин
plugins/axios.js
export default ({ store, $axios }) => {
 $axios.defaults.baseURL = store.state.env.URL
}
Но так не работает, nuxt/auth иногда отсылает запросы на url по умолчанию, из-за этого(скорее всего на стороне сервера) происходит редирект, и после обновления страницы юзера на /login перенаправляет
С обычным axios'ом все работает, через axios.create+inject, но тут нет
^
источник

ИС

Илья Салмасов in Nuxt.js — русскоговорящее сообщество
так нукст сервер инит происходит после плагинов) конечно он undefined
источник

А

Алексей in Nuxt.js — русскоговорящее сообщество
После плагинов? Но оно же иногда работает, иногда нет, как оно тогда работает?
источник

ИС

Илья Салмасов in Nuxt.js — русскоговорящее сообщество
Алексей
После плагинов? Но оно же иногда работает, иногда нет, как оно тогда работает?
этого я знать не могу
в моем случае я использую два плагина, один вычисляет baseURL (там происходит запрос на конкретный адрес), плагин mode:server (только серверный)
во следующем плагине я уже выставляю baseURL
источник

ИС

Илья Салмасов in Nuxt.js — русскоговорящее сообщество
коммит технически вы можете вызвать прямо в plugins/axios.js а не в nuxtServerInit
источник

ИС

Илья Салмасов in Nuxt.js — русскоговорящее сообщество
а нет не можете)
источник

А

Алексей in Nuxt.js — русскоговорящее сообщество
DreaMinder
пиши еси найдешь решение
В итоге, по крайней мере в моем случае-nuxt-env подошел.
Главное его поставить первым модулем(ну или до nuxt/auth)
А потом в плагине, или где угодно можно использовать store.$env.URL
https://github.com/MrNaif2018/bitcart-admin/commit/98e9b456417b9c1481195a9b0d06b4804b1e3664
источник