Nuxt: Proxy VS Asyn c data VS Перезагрузить страницу - PullRequest
0 голосов
/ 20 января 2020

Я создаю приложение nuxt и столкнулся с проблемой с данными Proxy и Asyn c.

Это мой nuxt.config (упрощенно)

modules: [
'@nuxtjs/axios',
'@nuxtjs/proxy'
],
axios: {
  proxy: true
},
proxy: {
  '/api': {
    target: 'http://www.example.com',
    pathRewrite: {
      '^/api': '/'
    }
  }
}

Это мой asyncData фрагмент кода (упрощенно):

async asyncData ({ store }) {
  await store.dispatch('fetchData')
}

Действие хранилища fetchData код (упрощенно):

async fetchData({ commit }) {
    const response = await myService.fetchData()
    commit('setData', response.data)
}

И, наконец, функция myService (упрощенная):

fetchData () {
    return axios.get('/api/path-to-my-resource')
}

Что ожидается: Чтобы служба инициировала вызов проксированной конечной точки, на оба случая: посещение страницы по ссылке или обновление страницы

Что происходит: Когда я нажимаю refre sh на странице, вместо того, чтобы вызывать http://www.example.com/path-to-my-resource, я вижу, что он пытается сделать это в / api / path / to-my-resource и, конечно, не удается. Из того, что я понимаю, когда я обновляю sh страницу, прокси не работает внутри ловушки asyncData.

Я почти уверен, что есть кое-что, что я пытаюсь ошибочно, но я не могу найти это. Может ли кто-нибудь указать мне правильное направление?

1 Ответ

1 голос
/ 21 января 2020

Попробуйте что-то вроде:

proxy: {
  '/api/': { target: 'http://www.example.com', pathRewrite: {'^/api/': ''} }
// ^^^^^                                                      ^^^^^^   ^^
// Note the ending slashes.
// And the rewrite rule.
}

Вот как написаны документы:

...