问题描述
我正在使用Angular HttpClient。 问题是,有时会发生错误,并且客户端会返回状态0“未知错误”。 我们发现问题仅发生在生产环境中的Safari(iOS和Mac)和Internet Explorer 11中。
作为一种解决方法,我们在游戏中放入了HttpInterceptor,它进行5次重试,每次重试间隔300毫秒。这似乎解决了问题。但我想知道根本原因。
我已经读到其他人也有同样的问题,但在这里似乎与CORS有关。但是由于问题是通过重试解决的,所以不应该是CORS。对吧?
我的HttpClient.get:
struct ContentView: View {
var body: some View {
NavigationView {
Form {
Section(header: Text("Info")) {
HStack {
Text("Name")
Spacer()
Text("someName")
}
HStack {
Text("Surname")
Spacer()
Text("someSurname")
}
}
}
.navigationBarTitle("Profile")
}
}
}
更新#1: 我们的应用程序前面有一个F5 Big IP负载平衡器。 我读到,在这方面,保持连接可能存在一些问题。
有什么建议吗?
解决方法
IE的控制台中是否还有其他错误消息?
在大多数情况下,它们是CORS问题。您可以尝试使用Fiddler,然后尝试使用IE访问该站点,以查看其是否有效。如果可行,我认为这是CORS问题。在Fiddler的AutoResponder中,您可以编辑规则以使其具有Access-Control-Allow-Origin
响应标头,其中包含请求站点的原点值。
除CORS问题外,还有许多其他原因导致错误代码。您可以参考this answer了解详细信息。它可能与负载均衡器有关,例如在请求期间断开的连接或请求超时。您可以在IE中不使用负载均衡器的情况下加载应用程序,以查看问题是否仍然存在。如果没有负载均衡器也可以正常工作,那么您可以说问题出在负载均衡器上。