我是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,但是我不知道我是否在执行正确的过程来获取想要的内容,因为我看不到任何清晰地显示我的字段标头。我必须使用另一个模块?有人能给我任何实现我想要的建议吗?非常感谢
答案 0 :(得分:1)
您缺少subscribe()
,除非您订阅,否则您的API调用
不会开火。
然后要获取响应标头,您需要在其中观察响应
请求,例如: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'))
})
)