Tôi cố gắng sử dụng các bộ chặn đánh chặn Angular 4.3
mới để đặt tiêu đề tác giả cho tất cả các yêu cầu. Tuy nhiên, nó không hoạt động. Tôi đặt breakpoint vào interceptors intercept
phương pháp và trình duyệt không đánh nó, vì vậy nó có vẻ như angular
chỉ bỏ qua interceptor của tôi. Xin hãy giúp tôi, cảm ơn trước.Góc 4.3 Bộ chặn không hoạt động
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}
]
})
bạn sẽ quan tâm đến một cách tiếp cận khác như tạo dịch vụ http của riêng bạn bằng cách mở rộng dịch vụ trước đó. bạn có thể làm tương tự ở đó. –