如果是401响应,我如何拦截服务器端点响应并将aurelia应用程序重定向到登录页面?
我试过" withInterceptor(responseError(){...})" aurelia-fetch-client config的方法,但我不能返回"新的重定向(loginPage)" ...
任何人都知道该怎么做?
答案 0 :(得分:5)
以下是一个例子:
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
},
});
});
}
答案 1 :(得分:0)
@Moustachiste使用此方法解决了相同的问题:
注入必须是这样
constructor(
// private _router: Router
@lazy(Router) private _router: () => Router
)