在特定请求上禁用标头HttpClient angular 5?

时间:2018-03-21 14:36:46

标签: httpclient angular5

我已将我的应用从ng4升级到ng5 v-5.2.9。我为每个请求设置了标头。但是在我的应用程序中,某些请求不支持标头,因此如何从特定请求中禁用标头而不是每个请求。

以前使用ng4我正在使用http,但现在面临的问题在ng5

中不再受支持

setHeader.ts

import { Injectable } from '@angular/core';
import { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpErrorResponse } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/catch';
import 'rxjs/add/observable/throw';

 @Injectable()
 export class AddHeaderInterceptor implements HttpInterceptor {
     intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {

    let currentUser = JSON.parse(localStorage.getItem('currentUser'));
    if (currentUser && currentUser.token) {
        request = request.clone({
            setHeaders: { 
                Authorization: `Bearer ${currentUser.token}`,
                Ip:currentUser.Ip
            }
        });
    }
    return next.handle(request);
}
}

app.module.ts: -

import { HTTP_INTERCEPTORS } from '@angular/common/http';

@NgModule({
   providers: [{
   provide: HTTP_INTERCEPTORS,
   useClass: AddHeaderInterceptor,
   multi: true,
  }],
})
export class AppModule {}

基本上标题用于令牌和autorization nut一些API不需要被授权,因此不需要标题,通过使用setHeader它适用于所有api调用。我的浏览器控制台上有 HttpErrorResponse 。不需要的地方

谢谢!

0 个答案:

没有答案