ヘッダーフィールドを追加するために角(4.3.6)HttpInterceptorを書きましたが、デバッガーでヘッダーを検査するとヘッダーが更新されません。何か案が?角型HttpInterceptorがヘッダーを変更していない
import {Injectable} from '@angular/core';
import {HttpEvent, HttpInterceptor, HttpHandler, HttpRequest} from '@angular/common/http';
import {Observable} from 'rxjs/Observable';
@Injectable()
export class AuthInterceptor implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
console.log('AuthInterceptor at work');
const contentTypeReq = req.clone({
headers: req.headers.set('Content-Type', 'application/json')
});
const token = localStorage.getItem('token');
if (token) {
const authReq = contentTypeReq.clone({
headers: req.headers.set('Authorization', 'Bearer ' + token)
});
return next.handle(authReq);
}
// Pass on the cloned request instead of the original request.
return next.handle(contentTypeReq);
}
}
コンテンツタイプを設定することは無意味です。 Angularはあなたのためにそれを行います。デバッガを使用してコードを実行しましたか?または、console.log()を追加してトークンが設定されていることを確認してください。 –
はい - 私はデバッガでそれを実行し、そのbeeingが呼び出されたことを確認します。しかしヘッダーは更新されません。 https://angular.io/guide/http#setting-new-headers – netshark1000