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

角度HttpClient将头追加到HttpHeaders[重复]

虞裕
2023-03-14

我正在从HttpServer升级到HttpClientService,作为升级的一部分,我必须将标题从标题切换到HttpHeaders。但是由于某些原因,我的自定义标题不再被追加。我需要更新什么才能添加标题?

  private getHeaders(headers?: HttpHeaders): HttpHeaders {
    if (!headers) {
      headers = new HttpHeaders();
    }
    headers.delete('authorization');
    const token: any = this.storageService.getItem('token');
    if (token) {
      headers.append('Authorization', 'Bearer ' + token);
    }
    const user: User = this.storageService.getObject('user');
    if (user && Object.keys(user).length) {
      headers.append('X-Session-ID', user.uuid);
      headers.append('X-Correlation-ID', this.uuidService.generateUuid());
    }
    return headers;
  }

该方法返回一个httpHeader,但它是空的。

共有1个答案

厉坚
2023-03-14

HttpHeaders.append返回带有附加值的头的克隆,它不更新对象。您需要将返回的值设置为标头。

angular/packages/common/http/src/headers。ts

append(name: string, value: string|string[]): HttpHeaders { 
  return this.clone({name, value, op: 'a'}); 
} 

因此,要附加标题,您可以这样做。

let headers: HttpHeaders = new HttpHeaders();
headers = headers.append('Content-Type', 'application/json');
headers = headers.append('x-corralation-id', '12345');
 类似资料:
  • 我正在尝试使用Angular httpClient向API发送一块ndjson。我接触的endpoint不接受对象数组,每个JSON对象都必须是换行符。因此,我不能只使用一个典型的JSON对象,而是使用一个JSON对象字符串,每个JSON对象后面都有一个换行符。然后我尝试将Content-Type头设置为applicationon/json,因为API仍然需要它,但当请求发出时,httpClien

  • 我在angular service请求中追加了头部,但值没有正确追加,我创建了一个拦截器来添加头部,如下所示 当我发送给服务器的值没有正确附加时,它显示像下图,值'r123'没有附加,我如何解决它? 报头图像

  • 问题是:“要求用户输入其国家的详细信息,使用输入的值创建一个国家的新对象,并将其附加到数组列表的开头。” 我确实遵循了最基本的规则来防止任何错误,但是当我试图编译时。它复制了一些像日本和美国这样的物体。尝试许多不同的方法来调试和理解问题,但我找不到。

  • 问题内容: Go编程语言中此循环的计算复杂度是多少? 并以线性时间(重新分配内存和每个追加拷贝的一切),或在固定的时间里操作(比如在许多语言方式矢量类是implemnted)? 问题答案: Go编程语言规范说,如果需要,内置函数会重新分配。 附加并复制切片 如果s的容量不足以容纳附加值,则append分配一个新的,足够大的切片,使其既适合现有slice元素又适合附加值。因此,返回的切片可以引用不同

  • 我试图弄清楚如何处理HttpHeaders上的头,以便通过HttpClient将它们用于http请求。 它只能这样工作: 有没有添加标题的特殊方法?还是虫子?

  • 我一直在寻找一种方法,通过新的的将查询参数传递到API调用中,但尚未找到解决方案。使用旧的模块,您可以编写如下内容。 这将导致对以下URL的API调用: 但是,新的方法没有属性,所以我想知道在哪里传递查询参数?