簡體   English   中英

Angular HttpClient.get 標頭

[英]Angular HttpClient.get headers

我有這個簡單的代碼即服務

import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { map } from 'rxjs/operators';

@Injectable({
  providedIn: 'root'
})
export class SpotifyService {
  constructor(private http: HttpClient) {
  }

  getQuery(query: string) {
    const cabecera: HttpHeaders = new HttpHeaders({
      'Authorization': 'Bearer BQDWZC2Y_iSV3rfmAhv-QxDpmhhJbbmgCnspy7HpIZPX5CbJ74D4Xl4aOyXLUL4smF2gZ_V3wiSXLxdLFPY'
    });
    const url = 'https://api.spotify.com/v1/' + query;
    return this.http.get(url, { cabecera });
  }
  getNewReleases() {
    return this.getQuery('browse/new-releases').pipe(map( data => data['albums'].items));
  }
}

但我收到此錯誤,我不明白為什么。

'{ cabecera: HttpHeaders; 類型的參數 }' 不能分配給類型為 '{ headers?: HttpHeaders | 的參數 { [標題:字符串]:字符串 | 細繩[]; }; 觀察?:“身體”; 參數?:Ht...'。 對象字面量只能指定已知屬性,並且類型 '{ headers?: HttpHeaders | 中不存在 'cabecera'。 { [標題:字符串]:字符串 | 細繩[]; }; 觀察?:“身體”; 參數?:Ht...'。

return this.http.get(url, { cabecera }); 行在語義上不正確,這意味着/解決以下問題:

return this.http.get(url, 
    { cabecera : new HttpHeaders({
        'Authorization': 'Bearer BQDWZC2Y_iSV3rfmAhv-QxDpmhhJbbmgCnspy7HpIZPX5CbJ74D4Xl4aOyXLUL4smF2gZ_V3wiSXLxdLFPY'
    }) 
});

這是錯誤的,因為傳遞給 HTTP 客戶端的選項對象不期望名為cabecera的鍵,而是一個headers鍵。

所以這可以通過簡單地用這個替換該行來解決: return this.http.get(url, { headers: cabecera });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM