我正在尝试获取路由的完整URL,但似乎没有任何工作,我找不到任何文档来执行此操作。
我发现了类似的问题:Get current url in Angular 4
我尝试过使用this._router.url
,但它只提供了路径。我需要整个网址,包括方案等。
有谁知道如何获取路线的完整网址?
答案 0 :(得分:1)
Ankur Garg提供的解决方案有效,因为location.path()返回地址栏中的路径,而不是当前可见的组件路线。
这在用户在地址栏中输入网址并按Enter的情况下特别有用。
例如,如果您输入https://somedomain.com/sent,则此请求将首先发送到服务器,并且不会由角度路由处理处理。如果捕获了单页应用程序(SPA)上所有常见的情况,无论请求的URL是什么,服务器总是将index.html发送回,首先加载的是app.component,在其中,如果使用router.url,则始终会显示“ /”,而不是“ / sent”。
因此,如果您需要存储用户最初请求的路径,则可以使用location.path()并将其保存在某处。一旦在客户端完成了所有操作,例如身份验证,访问验证等,您就可以始终将用户重定向到原始请求的路径。
这不仅适用于地址栏中键入的URL,而且还适用于通过电子邮件,社交媒体等共享的URL。
答案 1 :(得分:-2)
试试这个
导入部分
import {Location} from '@angular/common';
构造函数部分
constructor(private _location: Location) {
console.log(this._location.path()); //will give you current url
}