javascript - 使用 Angular 中的标头重定向到外部 url
问题描述
我有一个 Angular(版本 8)应用程序,它将使用 HEADERS 重定向/调用外部 url(不是 API)。
我可以调用/重定向外部 url,但无法发送任何 HEADERS。
问题是一旦我能够成功登录,我必须在重定向时将标头中的身份验证令牌发送到外部 url。
请让我知道如何在重定向到外部 url 时发送身份验证令牌。
我已经浏览了下面的 url,它可以帮助我重定向到外部 url,但没有发送标题。
解决方案
- 您创建
headers
.
例如:JSW,如果您在 localStorage 中有您的令牌,则为“current_user”令牌:
import { HttpHeaders } from '@angular/common/http';
....
const headers = new HttpHeaders()
.append("Authorization", "Bearer " + localStorage.getItem("current_user")["token"])
.append("Content-type", "application/json");
你定义你的
httpOptions
.const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json', Authorization: 'your-auth-token' }) };
headers
或更整洁(如果您之前已经声明过 const
const httpOptions = {
headers
};
- 您对外部 url 进行重定向/调用。
const externalUrl = 'http://....';
const dataToPut = 'Usually, it will be an object, not a string';
this.http.post<Hero>(this.externalUrl, dataToPut , httpOptions)
.pipe(
catchError(this.handleError('post error: ', dataToPut ))
);
无论如何,一旦你知道如何去做,在标头中发送身份验证令牌的最佳方法是通过一个INTERCEPTOR
,这将拦截你所有的 http 调用并在标头中插入身份验证参数:
https ://angular.io/指南/http#intercepting-requests-and-responses
PS:我强烈建议您阅读这2个官方文档页面以进行进一步检查...都在那里,更详细的信息
https://angular.io/guide/http#adding-headers
[Angular] [http] [headers] [interceptor]
推荐阅读
- python - 如何使用视图中的参数在 Django Web 应用程序中实现 python 脚本
- javascript - 如何使用导入的库作为类型属性
- javascript - 浏览器中的大数字算术,速度快得令人怀疑?
- node.js - 架构中的属性值采用默认值而不是 MongoDB/Mongoose 中定义的值
- matlab - 在 Matlab 中通过重建进行形态闭合
- reactjs - 在项目中使用两个不同的 React/React-Dom 版本
- google-api - 无法获取 Chrome Web Store API 的刷新令牌以发布 Chrome 扩展
- ionic-framework - 打包安卓。support.v4.content 不存在
- r - 计算不同日期同一时间的平均值
- ios - 目前无法安装此应用 Xcode 11