有没有一种方法可以在axios请求启动之前不仅拦截它,还可以响应它?也就是说,从浏览器发出请求,然后从浏览器响应该请求+防止发送该请求。
我知道我可以使用axios拦截器
在请求和响应被发送和返回到组件之前拦截它们,我也知道在请求拦截器中我可以抛出一个错误并触发带有失败请求的响应拦截器。那么如何处理成功的请求呢?给定某些条件,我希望axios响应好像已传递给服务器一样,实际上它甚至没有经过拦截器。这可能吗?
这是我目前的伪代码:
axios.interceptors.request.use(
request => {
if (localResponse) {
throw { isLocal: true, data: { hello: 'world' } }; // <- this will stop request and trigger
// response error. I want to trigger
// the actual response callback
} else {
return request; // <- will perform full request
}
},
error => {
return Promise.reject(error);
}
);
axios.interceptors.response.use(
response => {
return response; // <- I want to trigger this callback
},
error => { // <- so far i can only trigger a response error
if (error?.isLocal) {
return Promise.resolve(error.data);
}
return Promise.reject(error);
}
);
我尝试只解决请求拦截器,但这种方法会继续满足请求。是否有任何创意来解决这个问题?也许有比使用拦截器更好的解决方案?