我剛開始使用vue和vue資源。 在後端我使用laravel,在那裏處理jwt令牌。 令牌每刷新一次請求。到目前爲止,一切進展順利,除了一種情況: 如果我連續發出兩個請求與VUE資源象下面這樣:Vue兩個請求只有一個有效的令牌
//first request
Vue.http.get('/api/runs').then((response) => {
return response.json();
}, (response) => {
console.log(response);
this.$set('error', {'status' : response.status, 'error': response.statusText});
});
//second request
Vue.http.get('/api/meta').then((response) => {
return response.json();
}, (response) => {
console.log(response);
this.$set('error', {'status' : response.status, 'error': response.statusText});
});
只有第一個要求有一個有效的令牌。 我通過攔截設置令牌:
Vue.http.interceptors.push((request, next) => {
request.headers['Authorization'] = Auth.getAuthHeader();
request.emulateJSON = true;
next(function(response) {
if(response.headers['Authorization']) {
var token = response.headers['Authorization'];
localStorage.setItem('jwt-token', token);
}
});
});
出現這種情況,因爲這兩個請求被攔截之前並行發射可以設置新的JWT令牌。 所以我的問題是,我如何強制第二個請求,直到第一個完全完成,或者我該如何強制攔截器等待?