火狐 84/85 中的"NetworkError when attempting to fetch resource"



不久前我们推出了一个由GQL后端支持的React网站。从最近收集的客户端指标来看,我们观察到以下错误在84和85版本的Firefox浏览器中获取数据时发生的频率很高(截至发布此问题的时间)。

NetworkError when attempting to fetch resource.

在React应用程序中,使用一个Apollo GraphQL客户端来获取数据。整个ApolloError对象读起来像

{"graphQLErrors":[],"networkError":{},"message":"NetworkError when attempting to fetch resource."}

然而,当我们自己在上述浏览器版本上尝试时,无法复制。

我已经确认这应该不是CORS问题。我们有一个相当大的用户群,他们使用的Firefox浏览器版本也很多,但只有84和85版本的出现率如此之高。不久前,我们修复了一个类似的问题,该问题是由旧版本浏览器与Fetch api不兼容引起的。

我们有点不知道是什么原因导致了这个问题。客户端的日志记录数量有限,无法显示更多信息。任何见解或线索都非常感谢。

最后我发现这不是Firefox 84/85的错误。正如这里所解释的,fetch API只会在它的进程被浏览器终止时抛出一个网络错误消息(很可能是由于用户导航到另一个页面或停止页面加载造成的)。

我已经在一些主流浏览器上验证了这一点,当获取API正在进行时,故意停止页面加载。我收到的错误消息是:

  • 铬,Edge -Failed to fetch
  • Firefox -NetworkError when attempting to fetch resource
  • Safari -cancelled

不幸的是,只有Safari浏览器返回正确的消息来解释可能发生的事情。

我认为通常这些错误是安全的,可以忽略,或者在连接问题引起的情况下重试一次就可以挽救。对于Apollo GraphQL客户机,更重要的是检查ApolloError对象的graphQLErrorsnetworkError属性,这表明客户机捕获了一些严重的问题。

相关内容

  • 没有找到相关文章

最新更新