javascript - 为什么 Safari 在我刷新时会执行两次 fetch()?

标签 javascript node.js safari glitch-framework

我在 Glitch 上摆弄 HTML/JS。好有趣!我开始使用 fetch API 进行调用,这样我就可以与 SQLite 数据库进行交互,并且在我啄走时发现了一些奇怪的东西。我登录了我的方法,它们被调用了两次。

所以我做了一个项目来演示:http://safari-fetchfetch.glitch.me

您可以叉开它/戳它以查看代码。每次调用端点 /fetch 时,它都会记录服务器端。我希望每次访问都会发出一条日志消息。

这发生在 Safari 的第一次加载时。但是,在每次后续加载时,服务器都会记录两次 到端点的点击。为什么?我在 Chrome 中试过,无法重现。它似乎不会发生在 Safari 隐私浏览实例中。

我尝试记录请求的更多部分,但没有任何可疑之处。我看到一些页面说它可能与 CORS 有关,但这是同源的,对吧?即使我明确设置选项以使用同源策略,它也会继续。当我使用 Safari 的检查器查看该请求的 header 时,我没有看到似乎与 CORS 相关联的内容。

这是怎么回事?

最佳答案

可以是 this bug .

(我知道晚了,但对于像我这样的人来说,他们的搜索找到了这个 SO 问题,但没有找到其他相关页面。)

关于javascript - 为什么 Safari 在我刷新时会执行两次 fetch()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51868728/

相关文章:

Javascript 循环遍历 JSON 对象数组找到实例,但将它们记录为未定义

javascript - Node.js 通过回调返回多个错误的约定?

javascript - Div 在 Safari 10.0.1 上未正确呈现(就像是否存在溢出 :hidden somewhere but there isn't)

php - 在 while 循环中从 php 调用 javascript

javascript - 在自定义 'alert' 或 'confirm' 框中,剩余代码在按“确定”之前执行

javascript - $and with sub $and 在 mongo 和 mongoose 中没有产生预期结果

javascript - regex.test() 每隔一段时间才有效

javascript - 当前使用 SuperAgent 构造查询字符串的机制是什么?

php - 在 php 标签中包含 javascript 变量

javascript - console.log(document.head) 结果随每次刷新而交替