У меня проблема: на компоненте жизненного цикла, созданном компонентом Vue, я делаю 2 запроса CORS через Axios на внешний API-интерфейс Laravel. Если я делаю только один из запросов, все в порядке, и он работает 100% времени. Но если я делаю 2 или более запросов, я иногда получаю ошибочные запросы на вкладке сети. Очевидно, я делаю что-то не так с Аксиосом. Можете ли вы помочь мне.
Это хук, созданный моим компонентом - я вызываю действия VueX.
created () {
this.$store.dispatch('getPets');
this.$store.dispatch('getSpecies');
},
А это мои действия в магазине VueX
actions: {
getPets(context) {
return new Promise((resolve, reject) => {
axios.get('api/pets')
.then(response => {
context.commit('SET_PETS', response.data);
context.commit('SET_SELECTED_PET', response.data.data[0]);
resolve(response);
})
.catch(error => {
reject(error);
});
});
},
getSpecies(context) {
return new Promise((resolve, reject) => {
axios.get('api/species')
.then(response => {
context.commit('SET_SPECIES', response.data);
resolve(response);
})
.catch(error => {
reject(error);
});
});
},
setSelectedPet(context, pet) {
context.commit('SET_SELECTED_PET', pet);
},
}
Тогда я получаю ошибочные запросы случайным образом - иногда оба запроса в порядке (состояние 200),
в другой раз один из них терпит неудачу ...
Запросы
Запрос не выполнен - ответа нет, я думаю, что запрос вообще не переходит в Laravel API. Журналы Laravel тоже пусты.
Я думаю, что я делаю что-то не так с Axios, потому что это не из моего браузера или брандмауэра - я остановил брандмауэр и протестировал его в инкогнито и других браузерах без каких-либо расширений. Любая помощь будет оценена.
Это заголовки Axios, которые я установил в основном файле js.
// Set axios to call the backend API and set its headers on every page reload
window.axios = require('axios');
window.axios.defaults.baseURL = 'http://api.aaa';
window.axios.defaults.timeout = 30000;
window.axios.defaults.headers.common = {
'X-Requested-With': 'XMLHttpRequest',
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': 'Bearer '+getToken(),
};