如何使用“httpClient”作为链接(不是 API 调用)

问题描述 投票:0回答:1

我有一个 Angular 应用程序,它使用 HttpClient 进行 API 调用。 这些返回的数据类型的 Observables 可以用于各种目的,即

Observable<Widget[]>
可用于显示 Widget 搜索结果列表。

现在,我刚刚编写了一个后端/API 端点,它生成用户想要以该文件格式下载的一些搜索结果的 Excel 电子表格。 我不需要组件中的任何代码来解释或处理该数据,我只想在用户单击链接时将其链接到该 URL。 我想使用 HttpClient,因为 Angular 应用程序配置了一个“HTTP 拦截器”,该拦截器将不记名令牌添加为 HTTP 标头,从而向用户授权后端/API。 我不想在两个地方编写相同的代码。

所以,问题很简单:如何在 Angular 中使用 HttpClient 来简单地将用户链接到 URL? (如果这对答案有影响的话,我可能会在“新选项卡”中执行此操作,即

target='_blank'
。)

angular angular-httpclient
1个回答
0
投票

您可以创建一个虚拟页面,使用

_blank
在新选项卡中打开该页面。

downloadExcelReport(){
    window.open(<<my url>>/excel-report, "_blank");
}

对于此路由,您所需要做的就是向后端进行 HttpCall。

ngOnInit() {
    this.http.get('backend url that fetches the excel report').subscribe()
}

拦截器将完成添加身份验证令牌的工作,因此请求已获得授权和身份验证。

此后,您的后端应以哪种语言执行重定向到下载 URL 或查看器 URL:

Node js 可以重定向到一个 url 并在另一个新浏览器中显示它吗?

© www.soinside.com 2019 - 2024. All rights reserved.