我已将我的应用从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 。不需要的地方
谢谢!