如果您在Angular中尝试读取响应头部信息,但无效,请尝试以下解决方法:
使用HttpInterceptor拦截器来读取响应头部信息:
import { Injectable } from '@angular/core';
import { HttpInterceptor, HttpHandler, HttpRequest, HttpResponse } from '@angular/common/http';
@Injectable()
export class CustomHttpInterceptor implements HttpInterceptor {
intercept(req: HttpRequest, next: HttpHandler) {
return next.handle(req).pipe(
tap(event => {
if (event instanceof HttpResponse) {
// 读取响应头部信息
const headers = event.headers;
console.log(headers);
}
})
);
}
}
然后在NgModule中将拦截器提供给提供商:
import { NgModule } from '@angular/core';
import { HTTP_INTERCEPTORS } from '@angular/common/http';
import { CustomHttpInterceptor } from './custom-http-interceptor';
@NgModule({
providers: [
{
provide: HTTP_INTERCEPTORS,
useClass: CustomHttpInterceptor,
multi: true
}
]
})
export class AppModule { }
使用RxJS的map
操作符来获取响应头部信息:
import { HttpClient } from '@angular/common/http';
constructor(private http: HttpClient) { }
getHeaders() {
return this.http.get('https://api.example.com').pipe(
map(response => {
// 读取响应头部信息
const headers = response.headers;
console.log(headers);
return response;
})
);
}
然后在需要获取响应头部信息的地方调用getHeaders
方法。
请注意,以上示例假设您已经正确地设置了Angular的HttpClient模块并发出了HTTP请求。如果您还没有设置HttpClient,请确保正确配置并发出请求。