У меня была такая же проблема несколько дней назад.Эти ошибки являются HTTP-запросами, которые вернули код состояния не 200.
Можно ли запускать приложения с более подробной информацией при отображении ошибки?
С точки зрения NodeJ, я не думаю, что это так.Altough Universal пытается запустить угловое приложение, как если бы оно выполнялось в браузере.Таким образом, вы можете добавить HTTP-перехватчик и добавить некоторые журналы консоли внутри перехватчика, чтобы выяснить, какой URL не отвечает.
Вот небольшой пример:
export class HeadersInterceptor implements HttpInterceptor {
//private translateService: TranslateService;
constructor(@Inject(WINDOW) private window: Window, @Inject(LOCAL_STORAGE) private localStorage: any, private translateService: TranslateService, @Inject(PLATFORM_ID) private platform) {
/*this.translateService = this.injector.get(TranslateService);*/
}
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
console.log(req);
console.log(req.url);
return next.handle(req);
}
Не забудьтедобавить его в модуль.
Пример в core.module.ts:
providers: [
{
provide: HTTP_INTERCEPTORS,
useClass: HeadersInterceptor,
multi: true,
},
]
Надеюсь, это поможет.
РЕДАКТИРОВАТЬ:
Мое решение не предоставит вам подробную информацию о причине ошибки.Я думал об этом, и вы, безусловно, можете сделать что-то вроде:
RxJS <6: </p>
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(request).do((event: HttpEvent<any>) => {}, (err: any) => {
if (err instanceof HttpErrorResponse) {
// do error handling here
}
});
}
RxJS> = 6
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(request).pipe(tap((success) => {
}, (err) => {
if (err instanceof HttpErrorResponse) {
console.log(err.status);
}
}
));
}
Тогда вы должны получить доступ кОшибка.Кроме того, этот код скопирован с hackernoon: https://hackernoon.com/global-http-error-catching-in-angular-4-3-9e15cc1e0a6b