Nuxt js Ax ios onRequest () не выполняется для запроса asnycData - PullRequest
0 голосов
/ 19 января 2020

Я настроил ax ios плагин onRequest помощник для установки Authorization заголовка для запросов API, как показано ниже

1. export default function({ $axios, redirect, app, store }) {
2. $axios.onRequest(config => {
3.   var requestURL = config.url;
4.   console.log("Making request to " + requestURL);
5.    const token = store.state.user.account.token;
6.    if (token) {
7.      config.headers.common["Authorization"] = `Bearer ${token}`;
8.      console.log("Added authorization header");
9.    }
10. });

Этот onRequest помощник вызывается для actions в store , Но для asyncData в компоненте страницы вызов достигает до строки 2 выше, но никогда не входит в функцию onRequest.

import axios from "axios";

asyncData({ params }) {
console.log("params: " + params);
return axios
  .get(`http://localhost:8080/user/id/${params.id}`)
  .then(res => {
    return { userData: res.data };
  })
  .catch(e => {
    error({ statusCode: 404, message: "User not found" });
  });
}

Как я понимаю, все запросы Ax ios должны проходить через вспомогательную функцию onRequest , Я что-то здесь упускаю? Как это исправить?

1 Ответ

0 голосов
/ 19 января 2020

Когда вы import axios from 'axios' не используете конфигурацию для экземпляра ax ios, которую вы указали изначально. Вместо этого вы используете совершенно новый экземпляр ax ios.

Правильный способ - использовать экземпляр $axios из Nuxt context.

asyncData(context) {
   await context.$axios...
}
.
...