Я кодирую в соответствии с этим руководством: https://angular.io/guide/http#configuring-other-parts-of-the-request.
Мой код следующий:
loadMenuOptions(): void {
console.log('this.currentApiKey |' + this.currentApiKey);
let header = new HttpHeaders();
header = header.set('api-key', this.currentApiKey);
this.commonService. getMenuOptions(MENU_OPTIONS, header).subscribe(respuesta => this.setMenuOptions(respuesta));
}
Следующий код — это когда я отправляю этот объект на сервер:
getMenuOptions(endPoint: string, header: HttpHeaders): Observable<OptionsResponse> {
console.log('header:' + JSON.stringify(header));
return this.http.get<OptionsResponse>(endPoint, header)
.pipe(
tap(res => this.log('getMenuOptions | status | ' + res.header.status)),
catchError(this.handleError('getMenuOptions', null)));
}
JSON.stringify показывает это значение:
header:{"normalizedNames":[],"lazyUpdate":[{"name":"api-key","value":"JEFE_HHHABBBJJJXXX" ,"op":"s"}],"headers":[],"lazyInit":{"normalizedNames":[],"lazyUpdate":null,"headers":[]}}
но сервер не получает значение «api-key».
Я выполнил POSTMAN с тем же значением, и сервер правильно получил значение «api-key».
Что я делаю не так?
ОБНОВЛЕНИЕ
Этот снимок представляет собой первый вызов метода getMenuOptions: первый вызов сервера а>
Этот снимок экрана относится ко второму обращению к серверу:
Как вы видите во второй части второго вызова, заголовок, содержащий значение «api-key», отправляется внутри объекта «lazyUpdate».
HttpHeaders
являются неизменяемыми объектами, поэтому вы должны обратиться к этому ответу а> - person Aravind   schedule 19.12.2017