首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重定向至Angular中具有标题的外部url

问重定向至Angular中具有标题的外部url
EN

Stack Overflow用户
提问于 2021-06-28 13:50:18
回答 2查看 640关注 0票数 1

我有一个Angular (版本8)应用程序,它将重定向/调用带有标题的外部url (而不是API)。

我可以调用/重定向外部url,但不能发送任何报头。

事情是这样的,一旦我能够成功登录,我就必须在重定向时将报头中的身份验证令牌发送到外部url。

请告诉我如何在重定向到外部url时发送auth token。

我已经通过了下面的网址,这有助于我重定向到外部网址,但标题不会被发送。

Angular 6 Redirect to external url using POST

EN

回答 2

Stack Overflow用户

发布于 2021-06-28 14:03:13

我认为这样做的方法是通过XHR请求发送头部。然后,如果你想在之后重新加载,你可以。但是报头传输将首先发生。

代码语言:javascript
复制
this.http
.post('api/login', body, {
  headers: new HttpHeaders({
    'Authorization': 'my-auth-token',
    'x-header': 'x-value'
  })
}).subscribe(() => window.location.href='https://some-other-website.com')
票数 0
EN

Stack Overflow用户

发布于 2021-06-28 14:48:57

创建headers.的

例如: JSW,如果你在localStorage中有令牌,作为"current_user“令牌:

代码语言:javascript
复制
import { HttpHeaders } from '@angular/common/http';
....
const headers = new HttpHeaders()
  .append("Authorization", "Bearer " + localStorage.getItem("current_user")["token"])
  .append("Content-type", "application/json");

  1. 你定义你的httpOptions。

const httpOptions ={ headers: new HttpHeaders({ 'Content-Type':‘应用程序/json’,授权:‘您的身份验证令牌’}) };

或者更整洁(如果您以前已经声明了const headers

代码语言:javascript
复制
const httpOptions = {
  headers
};

  1. 您可以重定向/调用外部url。

代码语言:javascript
复制
    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,,它将拦截所有的调用,并在头中插入身份验证参数:https://angular.io/guide/http#intercepting-requests-and-responses

附言:我强烈建议你阅读这两个官方文档页面,以便进一步研究……更详细的信息都在这里了吗?

https://angular.io/guide/http

https://angular.io/guide/http#adding-headers

角度标头

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68158144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档