首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角"Http失效响应.0未知错误“问题再次出现

角"Http失效响应.0未知错误“问题再次出现
EN

Stack Overflow用户
提问于 2020-01-14 17:51:27
回答 1查看 19.1K关注 0票数 9

我已经读了很多关于这个问题的关于堆叠溢出的话题。大多数的回答都说这是CORS的问题。我不确定我的情况,所以这就是为什么我再次问这个问题,并在这里需要认真的帮助。

我正在开发一个棱角分明的应用程序,它每60秒在Android平板浏览器上点击一次API。这个应用程序运行得很好。但几个小时后,我开始发现错误:

代码语言:javascript
复制
0-Http failure response for https://theurl.com/api/: 0 Unknown Error

可怕的是,它是随机发生的,有时会发生在8,9或10小时之后,有时是在我很难调试的一天之后。但是如果我重新加载这个应用程序,它就会恢复正常工作。当然,我不想每时每刻都这么做,我也想不出什么是解决问题的根本所在。

我在想在拦截器里放个逻辑。每当我得到错误状态:0,然后重新加载应用程序。但我不确定它的良好做法。

任何建议都将是非常感谢的,或者至少是一项工作。谢谢。

// Edit:当错误状态为0时,在重试5次之后,我将忽略:

代码语言:javascript
复制
 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));
          })
        );
      }
EN

回答 1

Stack Overflow用户

发布于 2022-06-23 01:25:09

案例0是由您的出站请求未离开引起的。。这可能是因为CORS或某些安全策略阻止了您的请求离开,因为服务工作者截获并未能处理请求,或者因为设备的internet连接失败或暂停。

在我自己的许多项目中,我都看到了这种行为,并发现这是因为设备为了节约电力而进入待机状态或暂停连接。您可以通过启用和监视来自可观察到的(失败的internet连接)的HTTP ProgressEvents来测试设备上的internet连接是问题的事件:

这些错误的状态设置为0,error属性包含一个ProgressEvent对象,其类型可能提供进一步的信息。https://angular.io/guide/http#getting-error-details

我不知道这是否一定能回答你的问题,但我希望它能给你一个额外的调查途径。如果有帮助的话我很想听听。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59739254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档