我的Web客户端应用程序正在通过访存API设置HTTP POST请求。
我看到OPTIONS预检请求是通过调试代理(Charles Proxy)发送的,但未显示在Google Chrome开发者工具\网络标签中。
“网络”标签上没有任何过滤器设置。我记得OPTIONS请求在此处可见,但现在不再可见。我该如何把它们带回来?
答案 0 :(得分:21)
您需要转到: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=en
答案 1 :(得分:17)
答案 2 :(得分:10)
从 2021 年开始,在 CHROME 中,OPTIONS 请求在 NETWORK 选项卡过滤器其他请求中可见
要与 XHR 一起查看它,只需按 CTRL+单击并选择您想要查看的请求过滤器。
更新(4 月 17 日)Chrome 版本 90.0.4430.72 再次隐藏了选项请求:(
答案 3 :(得分:7)
我是Chromium项目的Takashi,并负责了“眨眼/渲染” CORS项目。
该项目旨在引入一个流程隔离的CORS实现,以提高安全性和隐私性,并且许多与网络相关的新功能都依赖于此新实现。不幸的是,我们暂时禁用了DevTools中的预检支持,因为事实证明继续支持它会削弱安全性和隐私性。很抱歉给您带来不便。
好消息是,Chrome 83现在以安全保留的方式再次实现了CORS预检DevTools支持。因此,您可以像在眨眼/渲染器CORS之前一样监视CORS飞行前请求。
最好
答案 4 :(得分:-2)
我注意到了同样的事情。我在控制台中收到错误:
Access to XMLHttpRequest at 'https://api.somedomain.com' from origin 'http://www.someotherdomain.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
这是我在Chrome的最新更新(至76)上开始发生的。我以前不知道以前在做什么,但是我经常重新启动浏览器。
这是HAR的回应
{
"status":0,
"statusText":"",
"httpVersion":"",
"headers":[
],
"cookies":[
],
"content":{
"size":0,
"mimeType":"x-unknown"
},
"redirectURL":"",
"headersSize":-1,
"bodySize":-1,
"_transferSize":0,
"_error":"net::ERR_FAILED"
}