如何在angular 6中的get请求中显示结果头

如何在angular 6中的get请求中显示结果头,angular,get,Angular,Get,由于get请求,我无法显示标题 import { Injectable } from '@angular/core'; import {HttpClient, HttpHeaders} from '@angular/common/http'; @Injectable({ providedIn: 'root' }) export class ApisService { link = 'http://13.233.34.68:3000/api/'; xToken = 'nil';

由于get请求,我无法显示标题

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

@Injectable({
  providedIn: 'root'
})
export class ApisService {
  link = 'http://13.233.34.68:3000/api/';
  xToken = 'nil';

  constructor(private http: HttpClient) { }
  getToken() {
    if (this.xToken === 'nil') {
      const header1 = new HttpHeaders({'username': 'angular', 'password': '123456'});
      this.http.get(this.link + 'get-token', {headers: header1})
        .subscribe(
          (result) => {
            console.log(result['headers']);
          }
        );
    }
  }
}
我在控制台中得到的结果是“未定义”。 请帮忙

编辑: 使用时

    this.http.get(this.link + 'get-token', {observe: 'response', headers: header1})
    .subscribe(
  (result) => {
    console.log('header keys:', result.headers.keys());
    console.log('header X-ABC:', result.headers.get('X-ABC'));
    console.log(result.body);
}
我在控制台中获得输出

header keys: 
Array(4) [ "cache-control", "content-type", "expires", "pragma" ]
apis.service.ts:18:12
header X-ABC: null apis.service.ts:19:12
Object { success: true }

在选项中,添加
observed:'response'
,那么您的返回类型将是
observeable
。最近的角度,默认情况下返回
可观察的
(即
观察?:“body”

拥有
HttpResponse
之后,您可以访问响应对象

this.http.get(this.link + 'get-token', {observe: 'response', headers: header1})
    .subscribe(
      (result) => {
        console.log('header keys:', result.headers.keys());
        console.log('header X-ABC:', result.headers.get('X-ABC'));
        console.log(result.body);
      }
    );
Angular将自动尝试检测车身类型。它也可以通过
responseType
选项进行控制

响应
正文
的替代方法是
观察:“事件”
,它将返回
可观察的
。然后,您将从可用的
HttpClient
获取事件。活动包括:

type HttpEvent<T> = HttpSentEvent | HttpHeaderResponse | HttpResponse<T> | HttpProgressEvent | HttpUserEvent<T>
类型HttpEvent=HttpSentEvent | HttpHeaderResponse | HttpResponse | HttpProgressEvent | HttpUserEvent

参考。

结果是一个对象。对象{success:true}但它是我需要的头文件。使用此方法获得的头文件不是我应该获得的头文件。这里我得到了lazyInit,规范化名称。但是我希望在响应头中有一个x-api-token。如前所述,为了访问头,您必须从
HttpClient
接收
HttpResponse
。为此,您必须在请求选项中使用
observe:'response'
明确指定它。否则,您将只获得由Angular确定的响应内容,可以是
json
text
等。是的,我添加了observe:“response”以获取头文件。但这些不是我期望的头文件,例如,使用Chrome开发工具查看您的网络请求,并检查HTTP响应中接收的头文件是否与上面示例中使用
console.log(response.headers)
打印的头文件相同。如果您在这两个页面中都没有看到预期的标题,则可能是您对请求和/或后端有问题。当我使用Postman发送相同的请求时,我会获得所有预期的标题。浏览器中的网络请求也显示了我需要的所有标题。但我没有得到这些头球在角度。请帮助:(