Angular 角度8-HttpInterceptor-读取响应头

Angular 角度8-HttpInterceptor-读取响应头,angular,http-headers,response,angular-http-interceptors,Angular,Http Headers,Response,Angular Http Interceptors,我的HttpInterceptor的响应中缺少http头。我可以得到一个身体,但不能得到头球。请参阅附件输出和我的代码 @Injectable() export class ApiVersionInterceptor implements HttpInterceptor { intercept( req: import("@angular/common/http").HttpRequest<any>, next: import("@angula

我的HttpInterceptor的响应中缺少http头。我可以得到一个身体,但不能得到头球。请参阅附件输出和我的代码

@Injectable()
export class ApiVersionInterceptor implements HttpInterceptor {
    intercept(
        req: import("@angular/common/http").HttpRequest<any>,
        next: import("@angular/common/http").HttpHandler
    ): import("rxjs").Observable<import("@angular/common/http").HttpEvent<any>> {
        return next.handle(req).pipe(
            tap(httpEvent=>{
                // Skip request
                if(httpEvent.type === 0){
                    return;
                }
                console.log("response: ", httpEvent);
            })

        );
    }
}
@Injectable()
导出类ApiVersionInterceptor实现HttpInterceptor{
拦截(

请求:导入(“@angular/common/http”)。HttpRequest使用如下方法:

@Injectable()
export class ApiVersionInterceptor implements HttpInterceptor {
    intercept(
        req: import("@angular/common/http").HttpRequest<any>,
        next: import("@angular/common/http").HttpHandler
    ): import("rxjs").Observable<import("@angular/common/http").HttpEvent<any>> {
        return next.handle(req).pipe(
            tap((httpEvent: HttpEvent<any>) =>{
                // Skip request
                if(httpEvent.type === 0){
                    return;
                }           
                console.log("response: ", httpEvent);

                let minTargetApiVersion : string;
                if (httpEvent instanceof HttpResponse) {
                    if(httpEvent.headers.has('mintargetapiversion')) {
                        minTargetApiVersion = httpEvent.headers.get('mintargetapiversion');
                    }
                }
            })

        );
    }
}
@Injectable()
导出类ApiVersionInterceptor实现HttpInterceptor{
拦截(
请求:导入(“@angular/common/http”).HttpRequest,
下一步:导入(“@angular/common/http”).HttpHandler
):导入(“rxjs”)。可观察{
返回next.handle(req.pipe)(
点击((httpEvent:httpEvent)=>{
//跳过请求
if(httpEvent.type==0){
返回;
}           
日志(“响应:”,httpEvent);
让MinTargetAversion:字符串;
if(httpEvent instanceof HttpResponse){
if(httpEvent.headers.has('minTargetAversion')){
minTargetAversion=httpEvent.headers.get('minTargetAversion');
}
}
})
);
}
}

Wohoo我解决了我的问题

这不是角度问题,而是服务器问题。我需要添加另一个标头:

"access-control-expose-headers": "mintargetapiversion"

Angular忽略未在“access control expose header”中指定的自定义头。

我以前尝试过此操作,但出现错误:类型“HttpEvent”上不存在属性“headers”。我无法解决此问题。我通过点击((HttpEvent:any)=>{,但if语句始终为false。HttpEvent.headers.get('MinTargetAversion')修复了此问题将始终返回null。