Я читал много топи c об этой проблеме в стеке потока. Большая часть ответа говорит, что это проблема CORS. Я не уверен в моем случае, поэтому я снова задаю этот вопрос и мне нужна серьезная помощь здесь.
Я занимаюсь разработкой приложения Angular, которое запускает API каждые 60 секунд в веб-браузере Android для планшетов. , Приложение работает отлично. Но через пару часов я начал видеть ошибки:
0-Http failure response for https://theurl.com/api/: 0 Unknown Error
Страшно то, что это происходит случайным образом, иногда это происходит через 8,9 или 10 часов, иногда после дня, который для меня так тяжел отладить это. Но если я перезагружаю приложение, оно возвращается к нормальной работе. Конечно, я не хочу делать это каждый раз, когда это происходит, и я не могу понять, в чем проблема root, чтобы ее исправить.
Я думал о том, чтобы поместить логический элемент c в перехватчик. всякий раз, когда я получил статус ошибки: 0, затем перезагрузите приложение. Но я не уверен, что это хорошая практика ..
Любое предложение будет действительно полезно или, по крайней мере, поможет. спасибо.
// Редактировать: я просто буду игнорировать после 5-ти повторных попыток при статусе ошибки 0:
intercept(
request: HttpRequest<any>,
next: HttpHandler
): Observable<
| HttpSentEvent
| HttpHeaderResponse
| HttpProgressEvent
| HttpResponse<any>
| HttpUserEvent<any>
| any
> {
return next.handle(request).pipe(
catchError(err => {
if (err instanceof HttpErrorResponse) {
switch (err.status) {
case 401:
return this.handle401Error(request, next);
case 0:
return this.handleUnknownError(request, next);
default:
return this.router.navigate(['system-error']);
}
} else {
return throwError(err);
}
})
);
}
}
private handleUnknownError(request: HttpRequest<any>, next: HttpHandler) {
return next.handle(request).pipe(
retryWhen(errors => {
return errors.pipe(delay(2000), take(5));
})
);
}