当前位置: 首页 > 知识库问答 >
问题:

Angular HttpHeaders没有设置值

朱睿
2023-03-14

我正在尝试为一个get请求设置头。功能如下:

 getLeads(jwtToken: string): Observable<any>{
    const headers = new HttpHeaders();
    const authroizationToken = 'bearer '.concat(jwtToken);
    console.log(authroizationToken);          ------------------>  prints the token
    headers.append('Authorization', authroizationToken);
    console.log(headers.get('Authorization'));  ---------------------> this prints null
    var result = this.http.get<Leads>(this.getLeadsUrl, {headers});
    return result;
  }

但是头。get('Authorization')由于某种原因为空,我无法找出原因。任何帮助都将不胜感激。

共有3个答案

丁兴德
2023-03-14

这个问题的答案如下。

https://stackoverflow.com/a/45286959/12376898

https://stackoverflow.com/a/47805759/12376898

总而言之,头是不可变的,因此进行任何更改都会创建一个新对象。除非将新创建的对象引用到旧引用,否则只有旧对象会保留。

getLeads(jwtToken: string) {
let headers = new HttpHeaders();
headers.append('ANYHEADER','SOMESTRING') // will be lost
headers = headers.append('ANYHEADER','SOMESTRING') //unless you reference it again to the old reference
}
司马高昂
2023-03-14

代码进行以下更改:

getLeads(jwtToken: string): Observable<any>{
    let httpOptions = {
      headers: new HttpHeaders({ 'Authorization': `bearer ${jwtToken}` })
    };
    return  this.http.get<Leads>(this.getLeadsUrl, httpOptions);
}
黄毅
2023-03-14

实际上. append返回新的头对象.试试这个它的工作原理是预期的。只要确保每次追加新标头时都将标头分配回变量。

   getLeads(jwtToken: string) {
    let headers = new HttpHeaders();
    const authroizationToken = 'bearer '.concat(jwtToken);
    console.log(authroizationToken);
    headers = headers.append('Authorization', authroizationToken);
    console.log(headers.get('Authorization'));
  }

这是一场有效的闪电战

希望这有帮助:)

 类似资料:
  • 问题内容: 如何设置数据属性而不在jQuery中添加值?我要这个: 我试过了: 其他所有内容似乎都将第二个参数添加为字符串。是否可以只设置没有值的属性? 问题答案: 该功能也是设置器功能。您可以将一个空字符串传递给它。 空字符串将仅创建没有值的属性。

  • 我有一个电子应用程序,我想建立一个自动更新。我跟踪了这篇博文,做了一个小演示,它工作很好,有一些小改动。然后我尝试用我的实际项目来实现它,现在我得到了一个错误。 我已经有了Electron-Builder.yml文件,我甚至尝试过设置GT_TOKEN和变量,但它仍然抛出相同的错误。

  • 为了解决这个问题,我尝试了许多JDK版本,但似乎无论我使用哪个java,结果总是一样的。 MavenReportException:创建存档时出错:无法找到javadoc命令:未正确设置环境变量JAVA_HOME。 我跑了: 导出JAVA_HOME=/usr/lib/jvm/JAVA-8-openjdk-amd64 : MavenReportException:创建存档时出错:无法找到javado

  • Spring HATEOAS提供了方便的ControllerLinkBuilder来创建指向控制器方法的链接,这些方法将作为HREF添加到返回给客户端的JSON/XML中。例如: ... 可能会生成类似以下内容的JSON: 然而... 我倾向于通过反向代理访问我的服务。我想大多数人可能会这样做。这让我可以在不同的端口上运行多个服务,但让我可以通过相同的基本URL访问它们。不幸的是,通过代理访问意味

  • 问题内容: 我正在使用Samsung galaxy nexus手机( Android 4.0 平台)。 我正在Ubuntu Linux操作系统上开发Android应用程序。我想直接在三星手持设备上运行我的应用程序,因此我执行了以下设置步骤: 在我的项目文件中,添加到元素 在设备上的 “设置” >“已启用 安全性” 中, “ 未知来源” 在设备上的 “设置” >“开发人员”选项中,启用了 USB调试

  • 本文向大家介绍如何设置没有有效期的JavaScript Cookie?,包括了如何设置没有有效期的JavaScript Cookie?的使用技巧和注意事项,需要的朋友参考一下 JavaScript cookie中的expires选项是可选的。“ expires”属性是可选的。如果为该属性提供有效的日期或时间,则cookie将在给定的日期或时间到期,此后,将无法访问cookie的值。 示例 要设置没