2017-04-03 14 views
5

chcę przekierować użytkownika, gdy mam 401, ale nie może uzyskać dostępu do router z tym kontekście:Jak przekierować użytkownika wewnątrz przechwytywacza http-resource-resource?

Vue.http.interceptors.push(function(request, next) { 
    // continue to next interceptor 
    next(function(response) { 
     if(response.status == 401){ 
      //redirect user here 
      //tried: Vue.$router and Vue.$route 
     } 

    }); 
    }); 

Jak mogę to zrobić?

Zastosowanie: Vue-router i Vue-zasobu

Odpowiedz

3
const router = new VueRouter({ 
    routes 
}) 

Vue.http.interceptors.push(function(request, next) { 
    // continue to next interceptor 
    next(function(response) { 
     if(response.status == 401){ 
      router.push(...) 
     } 
    }); 
}); 
+0

To działa! Ale jeśli mam te dwa oddzielne pliki, będę musiał przekazać router jako parametr, prawda? Po prostu nie rozumiem, czy nie mogę utworzyć 'Vue. $ Router' lub czegoś podobnego .. ale dziękuję za odpowiedź! – thur

+1

@thur Tak, jeśli znajdują się w różnych plikach, musisz zaimportować lub odsłonić go jak 'window.router' lub coś podobnego. – Bert

Powiązane problemy