我创建了一个拦截器服务,该服务应在请求中添加一个Authorization标头,以下是代码。
import { Injectable, Injector } from '@angular/core';
import { HttpInterceptor } from '@angular/common/http'
import { CarsdetailsService } from './services/carsdetails.service';
@Injectable({
providedIn: 'root'
})
export class TokenInterceptorService implements HttpInterceptor {
constructor(private injector: Injector) { }
intercept(req, next){
let userService = this.injector.get(CarsdetailsService);
if(userService.userLoggedIn()){
req = req.clone({
setHeaders: {
Authorization: `Bearer ${userService.getUserToken()}`,
}
});
}
return next.handle(req);
}
}
以下是CarsdetailsService中的一段代码,用于检查是否设置了令牌并返回了令牌。
userLoggedIn(){
return !!localStorage.getItem('usertoken');
}
getUserToken(){
return localStorage.getItem('usertoken');
}
我已经在app.module.ts中注册了拦截器服务
providers: [
CarsdetailsService,
CookieService,
UserauthGuard,
{
provide: HTTP_INTERCEPTORS,
useClass: TokenInterceptorService,
multi: true
}
]
但是,当我提交请求时,在网络下看不到Authorization标头。
有人可以帮助我解决我在这里犯的错误吗?
此外,由于我正在app.module.ts中注册拦截器服务,因此它将为每个请求发送授权标头。如果我只想通过“预订”之类的一个请求将其发送,该在哪里注册?
谢谢, SUBBU。