Angular 角度HttpClient获取状态0(Safari和IE)

Angular 角度HttpClient获取状态0(Safari和IE),angular,safari,internet-explorer-11,angular-httpclient,Angular,Safari,Internet Explorer 11,Angular Httpclient,我使用的是Angular HttpClient。 问题是,有时会发生错误,客户端会返回状态0“未知错误”。 我们发现这个问题只发生在我们生产环境中的Safari(iOS和Mac)和InternetExplorer11中 作为一种解决方法,我们在游戏中加入了一个HttpInterceptor,它可以在每一次尝试之间进行5次300毫秒的重试。这似乎解决了问题。但我想知道根本原因 我读到其他人也有同样的问题,但在这里,它似乎与CORS有关。但由于问题是通过重试解决的,所以不应该是CORS。对吧? My

我使用的是Angular HttpClient。 问题是,有时会发生错误,客户端会返回状态0“未知错误”。 我们发现这个问题只发生在我们生产环境中的Safari(iOS和Mac)和InternetExplorer11中

作为一种解决方法,我们在游戏中加入了一个HttpInterceptor,它可以在每一次尝试之间进行5次300毫秒的重试。这似乎解决了问题。但我想知道根本原因

我读到其他人也有同样的问题,但在这里,它似乎与CORS有关。但由于问题是通过重试解决的,所以不应该是CORS。对吧?

My HttpClient.get:

public getData(): Observable<Hentdata> {
  return this.httpClient.get<Hentdata>('api/hent')
            .pipe(catchError(err => this.handleError(err)));
}
public getData():可观察{
返回此.httpClient.get('api/hent')
.pipe(catchError(err=>this.handleError(err));
}
更新#1: 我们的应用程序前面有一个F5大型IP负载均衡器。 我读到“保持活力”在这方面可能存在一些问题


有什么建议吗?

IE控制台中是否有其他错误消息

在大多数情况下,它们都是CORS问题。您可以尝试使用Fiddler,然后尝试使用IE访问站点,看看它是否有效。如果这能奏效,我想这是CORS的问题。在Fiddler的自动应答器中,您可以编辑规则,使其具有
访问控制允许来源
响应标头,该标头包含请求站点的来源的值


除了CORS问题,还有许多其他导致错误代码的原因。有关详细信息,请参阅。它可能与负载平衡器有关,例如请求期间断开的连接或请求超时。您可以在IE中不使用负载平衡器加载应用程序,以查看问题是否仍然存在。如果没有负载平衡器它也能正常工作,那么你可以说问题来自负载平衡器。

IE控制台中是否有其他错误消息

在大多数情况下,它们都是CORS问题。您可以尝试使用Fiddler,然后尝试使用IE访问站点,看看它是否有效。如果这能奏效,我想这是CORS的问题。在Fiddler的自动应答器中,您可以编辑规则,使其具有
访问控制允许来源
响应标头,该标头包含请求站点的来源的值

除了CORS问题,还有许多其他导致错误代码的原因。有关详细信息,请参阅。它可能与负载平衡器有关,例如请求期间断开的连接或请求超时。您可以在IE中不使用负载平衡器加载应用程序,以查看问题是否仍然存在。如果在没有负载平衡器的情况下它可以正常工作,那么可以说问题来自负载平衡器