Chrome在“网络”标签中未显示OPTIONS请求

Ube*_*esh 9 google-chrome cors google-chrome-devtools preflight

我的Web客户端应用程序正在通过访存API设置HTTP POST请求。

我看到OPTIONS的预检请求是通过调试代理(Charles Proxy)发送的,但未显示在Google Chrome开发者工具\网络标签中。

网络标签上没有任何过滤器设置。我记得OPTIONS请求在此可见,但现在不再可见。我该如何带他们回来?

Mik*_*maa 27

即使更改选项并在我的计算机上重新启动,Chrome 81 似乎也没有显示任何内容。

作为替代解决方案,我开始使用 Firefox 及其网络选项卡进行开发。

在此处输入图片说明

https://getfirefox.com


小智 18

您需要转到:chrome:// flags /#out-of-blink-cors,禁用该标志,然后重新启动Chrome。

根据以下规定,这是预期的行为更改:https : //bugs.chromium.org/p/chromium/issues/detail?id=995740#c1

我最初是通过以下方式遇到此问题的:https//support.google.com/chrome/thread/11089651?hl = zh_CN

  • 这种行为会让新人开发者的生活变得更加困难。这基本上隐藏了错误的答案。 (33认同)
  • 正如 @GZH 在下面的答案中建议的那样,您可以使用“其他”选项卡来查看 CORS 飞行前选项请求。 (5认同)
  • 这有效。但我在链接页面中找不到这个“out-of-blink-cors”设置的作用。Blink 是 chrome 引擎名称 - 那么 cors 是用什么组件来代替它的呢?对于非 Chrome 扩展的普通网站来说,什么发生了有效的改变? (4认同)
  • 来自负责相关代码的 Chrome 实现者的好消息:请参阅 /sf/answers/4381353161/ 上的答案 *“Chrome 83 以安全保护的方式再次实现了 CORS 预检 DevTools 支持。因此,您可以像在 Out-Of-Blink/Renderer CORS 之前一样监视 CORS 预检请求”* (4认同)

GZH*_*GZH 15

从 2021 年开始,在 CHROME 中,OPTIONS 请求在 NETWORK 选项卡过滤器中可见 其他请求

要与 XHR 一起查看它,只需按 CTRL+单击并选择您想要查看的请求过滤器。

更新(4 月 17 日)Chrome 版本 90.0.4430.72 再次隐藏了选项请求:(

  • 镀铬是怎么回事?这是最近 10 个版本中显示这些请求的第四次切换。我跟不上。 (4认同)
  • 根据本页其他人的建议,我刚刚切换到 Firefox,无需额外配置,我就可以很容易地看到“OPTIONS”请求。考虑到 @Takashi Toyoshima 的答案,这让我想知道 Firefox 是否不太安全,或者 Chromium 团队是否无法弄清楚如何做 Mozilla 所做的事情。 (2认同)

Tak*_*ima 13

我是 Chromium Project 的 Takashi,推动了 Out-Of-Blink/Render CORS 项目。

该项目旨在引入一个进程隔离的 CORS 实现,以提高安全性和隐私性,许多新的网络相关功能都依赖于这个新实现。不幸的是,我们暂时禁用了 DevTools 中的预检支持,因为事实证明继续支持它会削弱安全性和隐私。在此期间给您带来不便,敬请谅解。

好消息是现在 Chrome 83 以安全保护的方式再次实现了 CORS 预检 DevTools 支持。因此,您可以像在 Out-Of-Blink/Renderer CORS 之前一样监控 CORS 预检请求。

最好的事物,

  • 对于运行 Chrome 84/Win10 的我来说,如果选择“全部”过滤器,则 OPTIONS 请求会显示在“网络”选项卡中,但如果选择“XHR”过滤器,则不会显示。这很烦人,因为这样我就必须费力地处理许多我不关心的其他请求。知道为什么不能在两个地方都显示它们吗? (22认同)
  • MacO 上的 Chrome 83.0.4103.116(官方版本)(64 位)仍然没有为我显示飞行前的信息。并且实验性的 out-of-blink-cors 选项不再可用。 (8认同)
  • 我在 macOS 上运行最新的 chrome,但在网络检查器中仍然看不到选项。帮助? (7认同)
  • Chrome 83.0.4103.116 (Mac OS) - 网络面板中仍然看不到飞行前信息。是否有一些标志需要打开? (3认同)
  • 您可以尝试以下页面吗?http://yuri.twintail.org/chrome/cors/preflight.html 1) 打开 DevTools 2) 单击“make cors fetch”按钮 3) 您将看到两个对 918322_21.cgi 的请求,一个是实际请求失败,以及另一个是 200 用于预检。注意:如果请求命中 CORS 预检缓存,我们不会显示任何内容,因为 Chrome 不会发送预检。DevTools 中的“禁用缓存”选项有望缓解此问题,因为此选项也禁用了预检缓存。 (2认同)
  • 即使请求是跨源请求,CORS 预检(OPTIONS 请求)也并不总是发送。请参阅 MDN 文档作为可读参考。对于简单的请求,预检被省略。只要发送了预检,当前 Chrome 就会在 DevTools 网络选项卡中显示该请求。https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request (2认同)
  • @ChrisTybur 是的伙计,就是这样:) (2认同)