Есть класс интерсептора:
import {
HttpRequest,
HttpEvent,
HttpHandler,
HttpInterceptor,
HTTP_INTERCEPTORS
} from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { messages } from 'src/fake-backend/data/messages/messages';
@Injectable()
export class FakeBackendInterceptor implements HttpInterceptor {
constructor() { }
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
console.log('HTTP REQUEST INTERCEPTED BY THE MOCKED BACKEND');
const duplicate = req.clone({ body: {data: messages} });
return next.handle(duplicate);
}
}
Этот интерсептор я в прописал в провайдерах в app.module.ts
providers: [
{ provide: HTTP_INTERCEPTORS, useClass: FakeBackendInterceptor, multi: true }
],
Вот сервис из которого делается запрос:
@Injectable({
providedIn: 'root'
})
export class MessageService {
constructor(
private http: HttpClient
) { }
getMessages(): Observable<Message[]> {
return this.http.get('/messages')
.map((messages: Message[]) => {
console.log('MessageService : getMessages : ', messages);
return messages;
});
}
}
В компоненте вызываю метод сервиса:
this.messageService.getMessages()
.subscribe(messages => {
console.log('ChatComponent : getMessages : ', messages);
});
Метод вызывается, интесептор перехватывает запрос, console.log() в интерсепторе срабатывает, но в консоль выводится ошибка 404:
https://prnt.sc/jv0lpu
Как сделать, чтобы интерсептор возвращал ответ с данными?