在Angular 2中,把用户重定向到一个完全外部URL的方法是什么?例如,如果我需要将用户重定向到OAuth2服务器以进行身份验证,我该如何做呢?
Location.go()、Router.navigate()和Router.navigateByUrl()用于将用户发送到Angular 2应用程序中的另一个部分(路由),但我不知道如何使用它们重定向到外部站点?
在Angular 2中,把用户重定向到一个完全外部URL的方法是什么?例如,如果我需要将用户重定向到OAuth2服务器以进行身份验证,我该如何做呢?
Location.go()、Router.navigate()和Router.navigateByUrl()用于将用户发送到Angular 2应用程序中的另一个部分(路由),但我不知道如何使用它们重定向到外部站点?
当前回答
在较新的Angular版本中,window为any
(window as any).open(someUrl, "_blank");
其他回答
你可以使用这个-> window.location.href = '…';
这将改变页面到任何你想要的。
我使用window.location.href='http://external-url';
对我来说,重定向在Chrome中有效,但在Firefox中不起作用。 下面的代码解决了我的问题:
window.location.assign('http://external-url');
以上的解决方案对我都不起作用,我只是补充说
window.location.href = "www.google.com"
event.preventDefault();
这对我很管用。
或者试着使用
window.location.replace("www.google.com");
要使用@Inject,必须导入它。我在所有答案中都没看到这个。
TS文件:
import { Component, Inject } from '@angular/core';
import { DOCUMENT } from '@angular/common';
@Component({
selector: 'app-my-comp.page',
templateUrl: './my-comp.page.component.html',
styleUrls: ['./my-comp.page.component.scss']
})
export class MyCompPageComponent {
constructor(
@Inject(DOCUMENT) private document: Document
) { }
goToUrl(): void {
this.document.location.href = 'https://google.com/';
}
}
HTML文件:
<button type="button" (click)="goToUrl()">Google</button>
在撕掉我的头之后,解决方案只是将http://添加到href。
<a href="http://www.URL.com">Go somewhere</a>