python network_error ai_generated true

RuntimeError: CORS headers missing for preflight request

ID: python/starlette-cors-headers-missing

Also available as: JSON · Markdown · 中文
80%Fix Rate
85%Confidence
0Evidence
2024-10-02First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
3.x active

Root Cause

Starlette应用未配置CORS中间件,导致跨域请求被拒绝

generic

中文

Starlette应用未配置CORS中间件,导致跨域请求被拒绝

Workarounds

  1. 95% success 添加CORSMiddleware到应用
    from starlette.middleware.cors import CORSMiddleware
    app.add_middleware(CORSMiddleware, allow_origins=['*'])
  2. 90% success 配置允许的特定域名
    app.add_middleware(CORSMiddleware, allow_origins=['https://example.com'])

Dead Ends

Common approaches that don't work:

  1. 在响应中手动添加Access-Control-Allow-Origin头 60% fail

    预检请求(OPTIONS)需要特殊处理,手动添加可能遗漏

  2. 使用Flask-CORS但项目是Starlette 50% fail

    Flask-CORS不兼容Starlette