我有一个 Angular 应用程序,它使用 HttpClient 进行 API 调用。 这些返回的数据类型的 Observables 可以用于各种目的,即
Observable<Widget[]>
可用于显示 Widget 搜索结果列表。
现在,我刚刚编写了一个后端/API 端点,它生成用户想要以该文件格式下载的一些搜索结果的 Excel 电子表格。 我不需要组件中的任何代码来解释或处理该数据,我只想在用户单击链接时将其链接到该 URL。 我想使用 HttpClient,因为 Angular 应用程序配置了一个“HTTP 拦截器”,该拦截器将不记名令牌添加为 HTTP 标头,从而向用户授权后端/API。 我不想在两个地方编写相同的代码。
所以,问题很简单:如何在 Angular 中使用 HttpClient 来简单地将用户链接到 URL? (如果这对答案有影响的话,我可能会在“新选项卡”中执行此操作,即
target='_blank'
。)
您可以创建一个虚拟页面,使用
_blank
在新选项卡中打开该页面。
downloadExcelReport(){
window.open(<<my url>>/excel-report, "_blank");
}
对于此路由,您所需要做的就是向后端进行 HttpCall。
ngOnInit() {
this.http.get('backend url that fetches the excel report').subscribe()
}
拦截器将完成添加身份验证令牌的工作,因此请求已获得授权和身份验证。
此后,您的后端应以哪种语言执行重定向到下载 URL 或查看器 URL: