我有这个问题-在Vue组件创建的生命周期挂钩上,我通过Axios向外部Laravel API发出2个CORS获取请求。如果我只提出其中一项要求,那么一切都很好,并且100%的时间都有效。但是,如果我发出2个或更多请求,有时我会在网络标签中随机收到失败的请求。显然我在使用Axios做错了。你能帮我吗?
这是我的组件创建的钩子-我称之为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), 其他时候其中之一失败了... Requests
该请求失败-没有响应,我认为该请求根本没有转到Laravel API。 Laravel日志也是空的。
我认为Axios出现了问题,因为它不是来自我的浏览器或防火墙-我已停止防火墙并在隐身版和其他浏览器中进行了测试,没有任何扩展。任何帮助将不胜感激。
这是我在主要js文件中设置的Axios标头。
// 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(),
};
答案 0 :(得分:1)
好吧,过了一段时间我终于弄明白了。导致此行为的是PHP opCache。如果您遇到类似的问题,请关闭opChache。
顺便说一句,您能不能想到导致Laravel出现此行为的原因,因为我不想失去opCache作为类似Laravel项目的选择吗?