Nuxt Axios $ get Vuex nuxtServerInit Возврат Тип содержимого Проблема - PullRequest
0 голосов
/ 10 октября 2018

Учитывая классический режим Vuex store 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

Если в параметрах axios для debug установлено значение true, дополнительно регистрируется следующее:

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

Какие дополнительные шаги мне необходимо предпринять дляизвлечь данные JSON из этого ответа?Нужно ли устанавливать заголовок для указания типа возврата application/json?Нужно ли использовать что-то вроде json() против ответа, как если бы вы использовали fetch()?Попытка получить доступ к свойству data, как если бы вы использовали не-nuxt axios, приводит к получению 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().

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

...