Chrome95及Firefox94下调试preflight请求无OPTIONS记录的问题咨询
校验preflight请求生效的方法
- 通过后端日志直接确认
直接在接口对应的后端服务中增加OPTIONS请求的日志记录逻辑,只要后端收到对应路径的OPTIONS请求,即可证明preflight请求已正常发出,该结果不受浏览器开发者工具展示逻辑的影响,是最准确的校验方式。 - 调整浏览器开发者工具设置显示预检请求
新版Chrome默认隐藏预检请求,可打开网络面板右上角的设置齿轮,取消勾选「隐藏预检请求」选项,同时勾选「禁用缓存」后重新发起请求,即可在网络列表中看到OPTIONS请求。
Firefox可在网络面板的过滤器选项中选择「全部」,不要仅筛选XHR/fetch类型的请求,即可展示被过滤的预检请求。 - 抓包工具校验
使用Wireshark、tcpdump等抓包工具,过滤目标接口域名对应的80/443端口流量,可直接查看本地是否发出了OPTIONS请求,该方式完全绕过浏览器的展示逻辑,结果100%准确。 - 通过请求表现反向推导
你当前使用的Content-Type: triggering/preflight不属于简单请求允许的三种Content-Type范围,必然会触发preflight校验:如果浏览器没有抛出跨域错误、且实际请求正常返回,就说明preflight已经正常通过;如果preflight失败,浏览器会直接拦截后续的实际请求,同时在控制台抛出CORS相关报错。
另外你提供的代码片段里,axios.get()的第一个参数URL缺少开头的反引号,修正后不会影响preflight的触发逻辑。
内容的提问来源于stack exchange,提问作者whitebear
相关产品推荐
相关产品推荐

