尝试获取标题角

时间:2019-03-18 11:45:44

标签: angular header

我是Angular的新手,我正在尝试从网站(例如google.com)上获取所有标头。这样做的目的是分析字段的安全性。为此,我使用的是HttpHeaders模块,但我不知道是否是执行此操作的正确模块,或者我必须更改为另一个模块。我将按照以下步骤操作:

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



@Injectable({
  providedIn: 'root'
})
export class HttpHeadersService {


  constructor(private http: HttpClient) { }

  getData() {
    return this.http.get("http://www.google.com");
  }
}

我已经有了这项服务,所有需要执行的模块都已导入了Angular模块文件中,此外,还有一个我称之为此服务的组件:

import { Component, OnInit } from '@angular/core';
import {HttpHeadersService} from '../../services/http-headers.service';

@Component({
  selector: 'app-table-form',
  templateUrl: './table-form.component.html',
  styleUrls: ['./table-form.component.scss']
})
export class TableFormComponent implements OnInit {

  constructor(private _httpHeadersService:HttpHeadersService) {
  }

  ngOnInit() {
    console.log(this._httpHeadersService.getData());
  }

}

当我这样做时,我会在控制台中看到一个Observable,但是我不知道我是否在执行正确的过程来获取想要的内容,因为我看不到任何清晰地显示我的字段标头。我必须使用另一个模块?有人能给我任何实现我想要的建议吗?非常感谢

2 个答案:

答案 0 :(得分:1)

  1. 您缺少subscribe(),除非您订阅,否则您的API调用 不会开火。

  2. 然后要获取响应标头,您需要在其中观察响应 请求,例如:get(url, {observe: 'response'}) https://angular.io/api/common/http/HttpClient#overload-9-2

    ngOnInit() {
        this._httpHeadersService.getData().subscribe(
            response => {console.log(response.headers)}
         );
     }
    

答案 1 :(得分:0)

您可以尝试以下操作:

this.httpClient.get(url, { observe: 'response'})
  .pipe(
    tap((response: HttpResponse<any>) => {
      console.log('response keys', response.headers.keys())
      console.log('content-disposition', response.headers.get('content-disposition'))
    })
   )