Javascript";类型错误:已取消";调用“时出错”;取回;在iOS上

Javascript";类型错误:已取消";调用“时出错”;取回;在iOS上,javascript,ios,sentry,Javascript,Ios,Sentry,我使用Sentry记录JS客户端错误,有很多TypeError:cancelled错误。这只发生在iOS上。我在谷歌上找不到任何东西。这是本机Javascript错误还是其他错误?这是什么意思 我在其他语言中也会遇到类似的错误,例如취소됨、Abgebrochen和cancelado。这告诉我错误不是由我的代码引起的。如果您使用的是fetchAPI,则iOS 11.1-12中的AbortController和AbortSignal可能有问题,只有当有人试图中止fetch请求时才会触发(这就是它不

我使用Sentry记录JS客户端错误,有很多
TypeError:cancelled
错误。这只发生在iOS上。我在谷歌上找不到任何东西。这是本机Javascript错误还是其他错误?这是什么意思


我在其他语言中也会遇到类似的错误,例如
취소됨
Abgebrochen
cancelado
。这告诉我错误不是由我的代码引起的。

如果您使用的是
fetch
API,则iOS 11.1-12中的
AbortController
AbortSignal
可能有问题,只有当有人试图中止fetch请求时才会触发(这就是它不一定会影响所有iOS用户的原因,解释了不一致性)

更详细地说,iOS 11.1-12在DOM中定义了
AbortController
AbortSignal
,但它们是存根-。因此,如果您尝试在中中止iOS中的提取请求,是吗

最近,我们的团队遇到了同样的错误。下面是我们的案例中发生的情况。当页面加载时,刷新按钮变为交叉按钮,现在如果在此页面加载期间正在进行某些api请求,并且用户单击此交叉按钮,则iOS chrome/safari会抛出此错误。对于相同的情况,Firefox浏览器会抛出此错误
TypeError:NetworkError在尝试通过
TypeError获取资源时
和chrome浏览器

这并不是我们应该担心的问题,因此我们决定使用sentry的ignoreErrors属性使sentry忽略此错误

Sentry.init({
  dsn: "sentry_dsn",
  ignoreErrors: [
    'TypeError: Failed to fetch',
    'TypeError: NetworkError when attempting to fetch resource.',
    'TypeError: Cancelled'
  ],
});

注意:
获取失败也是由CORS错误生成的,请注意这一点。 我们还决定使用sentry的beforeSend回调忽略状态代码在400到426之间的错误

Sentry.init({
  dsn: "sentry_dsn",
  ignoreErrors: [
    'TypeError: Failed to fetch',
    'TypeError: NetworkError when attempting to fetch resource.',
    'TypeError: Cancelled'
  ],
});
我们花了好几天的时间试图找到这个错误。希望这能帮助一些人

多谢各位

而且,
这最初写在这里:

我在我的哨兵设置中也看到了同样的情况,目前仅限于iOS 12.2和mobile Safari 12.1。没有包括堆栈跟踪,因此非常神秘。我不确定问题是什么,也没有在相关搜索结果中看到任何结果。“取消”错误消息的一部分让我相信这可能与承诺或抓取有关。您是否向不允许CORS的网站发送CORS请求?@Aplet123它对约97%的用户(包括iOS用户)运行良好。可能与带有AdBlocker的越狱手机等有关。我们在Sentr中也面临同样的问题y日志。从IOS 11开始有一个CORS问题。我们通过@Antononov的方式解决了一个问题。感谢链接,CORS问题的可能性很大,但是我的请求没有任何标题。取消的
应该是小写的吗?因为这对我目前不起作用。这对我们也不起作用