2016-07-27 10 views
1

Wie kann ich die Antwort des Serverendpunkts abfangen und eine Aurelia-Anwendung auf die Anmeldeseite umleiten, wenn es sich um eine 401-Antwort handelt?Weiterleitung zur Anmeldeseite, wenn der Server 401 antwortet

Ich habe versucht, "withInterceptor (responseError() {...})" Methode der aurelia-Fetch-client config, aber ich kann eine "neue Redirect (Anmeldeseite)" nicht mehr zurück ...

Wer eine hat Idee, wie es geht?

+0

können Sie den Router nicht injizieren und zu Route navigieren? –

Antwort

3

Hier ist ein Beispiel:

import { HttpClient } from 'aurelia-fetch-client'; 
import { inject } from 'aurelia-framework' 
import { Router } from 'aurelia-router' 

@inject(HttpClient, Router) 
export class UserService { 
    http 
    router 

    constructor(http, router) { 
    this.http = http 
    this.router = router 

    this.http.configure(config => { 
     var self = this; 
     config 
     .withInterceptor({ 
     responseError(response) { 
      if (response.status === 401) { 
      self.router.navigateToRoute('login') 
      } 
      return response; // you can return a modified Response 
     }, 
     }); 
    }); 
    }