我在 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/