Nuxt Axios $get Vuex nuxtServerInit Возврат Тип содержимого Проблема

Учитывая классический режим магазина Vuex nuxtServerInit выполнить @nuxtjs/axios модуль $get чтобы получить простой JSON:

import Vuex from "vuex";

const createStore = () => {
  return new Vuex.Store({
    state: () => ({
      todo: null
    }),
    mutations: {
      receiveTodo(state, todo) {
        state.todo = todo;
      }
    },
    actions: {
      async nuxtServerInit({ commit }, { app }) {
        const todo = await app.$axios.$get("https://jsonplaceholder.typicode.com/todos/1");
        console.log(todo);
        commit("receiveTodo", todo);
      }
    }
  });
};

export default createStore;

Значение todo возвращается как:

��\u0002\u0000 �o;�лϓt`\tv� �j��\u0003�j��\u0003~;$tp��JP����6\b�SAs�B�\u0004N��vy�a�e��ᰱ��\u0007

С debug установлен в true в опциях axios дополнительно регистрируется следующее:

[Axios] [200 OK] [GET] https://jsonplaceholder.typicode.com/todos/1

Какие дополнительные шаги мне нужно предпринять, чтобы извлечь данные JSON из этого ответа? Нужно ли устанавливать заголовок, чтобы указать тип возвращаемого значения application/json? Делает что-то вроде json() нужно использовать против ответа, как вы бы с fetch()? Пытаясь получить доступ к data свойство, как вы бы с ненулевыми аксиосами такие выходы undefined:

async nuxtServerInit({ commit }, { app }) {
  const { data } = await app.$axios.$get("https://jsonplaceholder.typicode.com/todos/1");
  console.log(data) // undefined
}

Это приложение было создано с использованием create-nuxt-app и использует "nuxt": "^2.1.0" а также "@nuxtjs/axios": "^5.3.3",

Обновить:

Выполнение того же вызова app.$axios.$get("https://jsonplaceholder.typicode.com/todos/1") в компоненте в пределах asyncData() Метод успешно возвращает JSON. Кажется, возможно, проблема разбора при выполнении в nuxtServerInit(),

Спасибо за любую помощь, которую вы можете предоставить!

0 ответов

Другие вопросы по тегам