HttpClient:无法访问响应头

Jay*_*r P 2 http-headers angular angular-httpclient

在一个项目中,我们使用Http和HttpClient来获取头部参数.Http返回标题参数,但HttpClient没有.

constructor(private http: Http, private httpClient: HttpClient) {}
getContent() {
        const url = '';
        return this.http.post(url, data)
            .map((res: HttpResponse<any>) => {
                console.log('http content', res);
            });


        return this.httpClient.post(url, data, { observe: 'response' })
            .map((res: HttpResponse<any>) => {
                console.log('httpClient content',res);
            });
}
Run Code Online (Sandbox Code Playgroud)

在控制台中检查时,http返回带有标头的响应,但httpClient在标头中返回一个空数组.

在浏览器检查器的"网络"选项卡中选中时,它会显示所有标头参数.

服务器接受以下CORS选项:

  origin: '*',
  methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
  allowedHeaders: 'Origin,X-Requested-With,x-access-token,Content-Type,Authorization,Accept,jwt',
  exposedHeaders: 'Content-Type,Authorization,jwt'
Run Code Online (Sandbox Code Playgroud)

请帮我弄清楚如何使用httpClient获取标头.

提前致谢.

LLa*_*Lai 10

您正在使用HttpClient进入正确的轨道.您应该get()在标题上使用该方法.

this.httpClient.post(url, data, {observe: 'response'})
    .map((res: HttpResponse<any>) => {
        let myHeader = res.headers.get('my-header');
        return res;
    });
Run Code Online (Sandbox Code Playgroud)

my-header您尝试获取的标头响应在哪里.