Angular 6 HTTP 拦截器未设置 headers
Angular 6 HTTP Interceptor not setting headers
我正在尝试制作一个 jsonwebtoken 拦截器,但出于某种原因它根本没有设置 header。
对于我的提供者,我有
import { TokenInterceptorService } from './token-interceptor.service';
...
providers: [AuthService, AuthGuard, {
provide: HTTP_INTERCEPTORS,
useClass: TokenInterceptorService,
multi: true
}]
因为我的 TokenInterceptorService
也很简单:
import { Injectable } from '@angular/core';
import { HttpInterceptor } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class TokenInterceptorService implements HttpInterceptor {
constructor() { }
intercept(req, next) {
let tokenizedReq = req.clone({
setHeader: {
Authorization: 'Bearer xx.yy.zz'
}
})
return next.handle(tokenizedReq);
}
}
如果我记录 tokenizedReq
,header 什么也没有。我一定是忽略了什么。
不是setHeader
而是setHeaders
- 复数形式
let tokenizedReq = req.clone({
setHeaders: {
'Authorization': 'Bearer xx.yy.zz'
}
})
setHeader
算不了什么。
或者使用setHeaders: {}
喜欢
let tokenizedReq = req.clone({
setHeaders: {
Authorization: 'Bearer xx.yy.zz'
}
})
或使用
let tokenizedReq = req.clone({
headers: req.headers.set('Authorization','Bearer xx.yy.zz'),
})
在 Observable 的帮助下尝试。
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
request = request.clone({
setHeaders: {
Authorization: 'Bearer xx.yy.zz'
}
});
return next.handle(request);
}
我正在尝试制作一个 jsonwebtoken 拦截器,但出于某种原因它根本没有设置 header。
对于我的提供者,我有
import { TokenInterceptorService } from './token-interceptor.service';
...
providers: [AuthService, AuthGuard, {
provide: HTTP_INTERCEPTORS,
useClass: TokenInterceptorService,
multi: true
}]
因为我的 TokenInterceptorService
也很简单:
import { Injectable } from '@angular/core';
import { HttpInterceptor } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class TokenInterceptorService implements HttpInterceptor {
constructor() { }
intercept(req, next) {
let tokenizedReq = req.clone({
setHeader: {
Authorization: 'Bearer xx.yy.zz'
}
})
return next.handle(tokenizedReq);
}
}
如果我记录 tokenizedReq
,header 什么也没有。我一定是忽略了什么。
不是setHeader
而是setHeaders
- 复数形式
let tokenizedReq = req.clone({
setHeaders: {
'Authorization': 'Bearer xx.yy.zz'
}
})
setHeader
算不了什么。
或者使用setHeaders: {}
喜欢
let tokenizedReq = req.clone({
setHeaders: {
Authorization: 'Bearer xx.yy.zz'
}
})
或使用
let tokenizedReq = req.clone({
headers: req.headers.set('Authorization','Bearer xx.yy.zz'),
})
在 Observable 的帮助下尝试。
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
request = request.clone({
setHeaders: {
Authorization: 'Bearer xx.yy.zz'
}
});
return next.handle(request);
}