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()
,
Спасибо за любую помощь, которую вы можете предоставить!