すべてのリクエストに対してオーサリングヘッダを設定するために新しいAngular 4.3
インターセプタを使用しようとしています。しかし、それは動作していません。私は、インターセプタintercept
メソッドにブレークポイントを設定し、ブラウザがそれをヒットしなかったので、angular
は私のインターセプタを無視しているようです。事前に感謝してください。角度4.3インターセプタが動作しない
user.service.ts:
import {Injectable} from '@angular/core';
import 'rxjs/add/operator/map';
import {Observable} from "rxjs";
import {Http} from "@angular/http";
@Injectable()
export class UserService {
constructor(public http: Http) {
}
public getContacts(): Observable<any[]> {
return this.http.get('/users/contacts').map(contacts => contacts.json());
}
}
token.interceptor.ts
import {Injectable} from '@angular/core';
import {
HttpRequest,
HttpHandler,
HttpEvent,
HttpInterceptor
} from '@angular/common/http';
import {Observable} from 'rxjs/Observable';
import {AuthService} from "./shared/auth.service";
@Injectable()
export class TokenInterceptor implements HttpInterceptor {
constructor(public auth: AuthService) {
}
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
request = request.clone({
setHeaders: {
Authorization: `Bearer ${this.auth.getToken()}`
}
});
return next.handle(request);
}
}
app.module.ts:
@NgModule({
...
providers: [
...
{provide: HTTP_INTERCEPTORS, useClass: TokenInterceptor, multi: true}
]
})
あなたは以前のものを拡張して独自のhttpサービスを作成するような別の方法に興味がありますか?あなたはそこで同じことをすることができます。 –