我正在使用角度6编写应用程序,这里我有两个网址,
URL 1 为http://authentication.hello.com的地方, URL 2 为http://application.hello.com
如果用户通过url 1登录,则只能重定向到url 2。
如果用户直接提供网址为http://application.hello.com,则应重定向到http://authentication.hello.com进行登录。
我为此使用了以下内容,
class MyComponent {
destroyed$ = new Subject();
ngOnDestroy() {
this.destroyed$.next();
}
myMethod() {
this.apiHelper.get('some/url')
.pipe( takeUntil(this.destroyed$) )
.subscribe(()=> {
// do things
});
}
}
我在这里用过
if (localStorage.getItem("isLoggedIn") === "true") {
return true;
} else {
window.location.href = "authentication.hello.com";
}
如果未登录则重定向到身份验证。
但是,如果用户直接以http://application.hello.com的形式提供该网址,则其显示为http://application.hello.com/authentication.hello.com,此处将其添加到给定的网址中,但我需要的是,它应该删除 http://application.hello.com,并且应该只有http://authentication.hello.com这样的网址,用户才能看到登录屏幕。
对于window.location.href = "authentication.hello.com";
,也将收到与http://application.hello.com/authentication.hello.com相同的结果,而我需要单独不加载 window.location.replace("authentication.hello.com")
来加载网址authentication.hello.com
如果没有登录。
请帮助我使用纯JavaScript或打字稿来实现它。
答案 0 :(得分:2)
使用完整URL在window.location.href中设置值:
window.location.href = "http://authentication.hello.com";