CORS错误似乎取代了有角度的应用程序收到的4xx和5xx错误

时间:2019-06-28 12:54:22

标签: angular laravel

前端Angular7。
后端Laravel 5.1

每当我们从后端收到错误时,都会引发CORS错误,因为错误响应中没有CORS标头。

“ google”建议的将CORS添加到错误响应的解决方案最终将标头添加到所有错误响应,无论路径如何。这种解决方案不好,因为我只需要将标头添加到特定的端点,而不是全部。

所以我想我可以忽略CORS错误并处理响应状态,但事实证明我做不到。

return this.http.get(path, { headers: this.authHeaders() }).map(
  (result: Response) => { return result; } // let the caller handle OK response
).catch((error: any) => {
  if ( error.status === 500 ) { // handle error immediately
    svc.handle500();
    return new Observable<any>();
  }
  return new Observable<any>(error); // let the caller handle the error
});

500错误检查行被跳过,因为CORS错误是最后一个错误,并且具有error.status === 0Chrome console output
在上图中,您可以看到chrome两次出现错误500,然后是CORS错误。控制台的最后一行是http错误响应对象。因此,您可以清楚地看到其状态等于0,并且消息为“未知错误”。

这非常糟糕,因为我无法以不同的方式处理不同的错误。它们的状态均为0。

有什么解决方案?我怎样才能发现真正的错误?

也欢迎解决方案如何将CORS标头添加到仅针对某些路径的错误响应中。

0 个答案:

没有答案