На основании json в сообщении об ошибке вам необходимо сделать следующее:
- Определите интерфейс, я использовал имя
INotification
. Это определит членов, доступных в десериализованном ответе json.
- Сильно введите возвращаемые методы метода, а также укажите аргумент универсального типа в
http.get<T>
. Когда вызывается http.get
, он пытается десериализовать ответ json с сервера на граф объектов. Определив INotification[]
в качестве возвращаемого типа, дальнейшие вызывающие абоненты, например, из компонента, теперь могут безопасно вызывать члены типа возврата, такие как find
или другие члены Array.prototype, а также получать доступ к определенным членам в экземплярах массива.
responseType: 'text'
требуется только в том случае, если вы не отправляете ответ от сервера или , когда ответ текстовый, а не json. Первый может произойти с вызовами post
или put
или delete
, когда сервер может отправлять только статус, а тело ответа в ответе отсутствует.
Вот ваш сервисный код, переписанный на основе приведенного выше отзыва.
notificationsFassService.ts
export interface INotification {
incidentNumber: number;
createdByName: string;
createdDate: string;
}
export class NotificationsFassService {
constructor (private readonly http: HttpClient) { }
getAll():Observable<INotification[]> {
return this.http.get<INotification[]>(this.url);
}
}
notificationsFassComponent.ts
export class NotificationsFassComponent implements OnInit {
notificationsFass: INotification[];
constructor(route: ActivatedRoute, private metaService: Meta, private notificationService: NotificationsFassService) {
this.notificationsFass = [];
}
ngOnInit() {
this.notificationService.getAll()
.subscribe(notificationsFass => {
this.notificationsFass = notificationsFass;
});
}
}