我正在尝试在http头文件中添加自定义字段‘Bearer Token’。添加令牌作为'Authorization‘:Bearer xyzqwerty运行良好,但添加’Bearer token‘:xyzqwerty会抛出错误
TypeError: Cannot read property 'length' of null
at HttpHeaders.applyUpdate (http.js:334)
at http.js:284
at Array.forEach (<anonymous>)
at HttpHeaders.init (http.js:280)
at HttpHeaders.forEach (http.js:378)
at Observable._subscribe (http.js:2362)
at Observable._trySubscribe (Observable.js:42)
at Observable.subscribe (Observable.js:28)
at subscribeToResult (subscribeToResult.js:9)
at MergeMapSubscriber._innerSub (mergeMap.js:59)下面是我使用的拦截器的代码:
import { Injectable, Injector } from '@angular/core';
import { HttpEvent, HttpInterceptor } from '@angular/common/http'
import { AuthService } from './auth.service';
import { Observable } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class TokenInterceptorService implements HttpInterceptor {
constructor(private injector: Injector) { }
intercept(req, next): Observable<HttpEvent<any>>{
let authService = this.injector.get(AuthService)
let tokenizedReq = req.clone(
{
headers: req.headers.set('Authorization', 'bearer ' + authService.getToken()),
}
)
let tokenizedReq1 = tokenizedReq.clone(
{
headers: tokenizedReq.headers.set('Bearer-Token', authService.getToken())
}
)
return next.handle(tokenizedReq1)
}
}发布于 2020-11-04 16:56:40
你可以这样做:
const tokenizedReq1 = req.clone({setHeaders: {'Bearer-Token': authService.getToken()}});
return next.handle(tokenizedReq1);同样,如果这不起作用,你可以尝试这样做:
const tokenizedReq1 = req.clone({
headers: new HttpHeaders({
'Bearer-Token': authService.getToken(),
'Authorization': `bearer ${authService.getToken()}`
})
});https://stackoverflow.com/questions/64676203
复制相似问题