You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么CORS校验报错称预检请求的HTTP状态不是ok状态?

问题根因

你发起的请求携带了自定义的ApiKey请求头,会触发CORS预检OPTIONS请求,Chrome对第三方CORS扩展处理预检请求的逻辑和Firefox存在差异,因此仅Chrome侧报错。

可行解决建议

  • 优先使用Chrome扩展原生跨域权限,无需依赖第三方CORS绕过工具。在你开发的扩展的manifest.json中配置对应权限即可:
    • Manifest V3版本:在host_permissions数组中添加你需要请求的API域名,比如 "https://api.example.com/*"、"https://myexampleapi.com/*"
    • Manifest V2版本:在permissions数组中添加上述域名配置
      配置完成后扩展发起的请求会直接获得跨域权限,不会触发CORS校验,也无需发送预检请求。
  • 如果必须使用第三方CORS扩展,需要修改扩展配置:
    多数CORS扩展默认仅处理实际业务请求,未适配OPTIONS预检请求,需要进入扩展设置页,开启处理OPTIONS请求的开关,配置规则时包含OPTIONS请求方法,同时手动添加响应头Access-Control-Allow-Headers: ApiKey,设置预检响应状态码为200/204即可。
  • 本地临时调试可直接启动Chrome禁用安全模式,完全关闭CORS校验:
    • Windows:右键Chrome快捷方式,在「目标」输入框的原有内容后追加 --disable-web-security --user-data-dir="C:\ChromeDebug",保存后打开该快捷方式即可
    • Mac:终端执行命令 open -n /Applications/Google\ Chrome.app --args --disable-web-security --user-data-dir=/tmp/ChromeDebug
  • 无法调整扩展配置或权限的前提下,可将自定义ApiKey头转移到URL查询参数中传递,移除xmlHttp.setRequestHeader相关代码,避免触发预检请求,普通GET请求可被常规CORS扩展正常适配。

内容的提问来源于stack exchange,提问作者Syllith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 21:36:04