我有这个简单的代码即服务
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 });
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句