Angular 角度6-429响应处理

Angular 角度6-429响应处理,angular,angular-httpclient,http-status-code-429,Angular,Angular Httpclient,Http Status Code 429,如何在Angular 6中捕获HttpClient上的429错误响应 下面的示例将正确捕获401错误,但对于429,它将反馈未知错误 错误/编辑:飞行前选项检查失败 登录代码: this.http.post<any>(this._loginUrl, this.loginUserData) .subscribe( res => { console.log(res) }, err => { console.log(err);

如何在Angular 6中捕获HttpClient上的429错误响应

下面的示例将正确捕获401错误,但对于429,它将反馈未知错误

错误/编辑:飞行前选项检查失败

登录代码:

this.http.post<any>(this._loginUrl, this.loginUserData)
  .subscribe(
    res => {
      console.log(res)
    },
    err => {
      console.log(err);
      if (err.status == 401) {
        // unauthorized
      } else if (err.status == 429) {
        // limit reached
      } else {
        // unknown
      }
    }
  )
429响应

HttpErrorResponse {headers: HttpHeaders, status: 401, statusText: "Unauthorized", url: "http://localhost:82/api/login", ok: false, …}
HttpErrorResponse {headers: HttpHeaders, status: 0, statusText: "Unknown Error", url: null, ok: false, …}

由于您的失败发生在飞行前选项请求上,这很可能意味着响应缺少CORS标头(这就是为什么您的状态为0,而不是429)。

您可以共享loginUserData吗?问题已解决;在我的API上,我在添加CORS头之前应用了节流,这导致我的429在没有它们的情况下响应。