python config_error ai_generated true

类型错误: 'CORSMiddleware' 对象不可调用

TypeError: 'CORSMiddleware' object is not callable

ID: python/fastapi-cors-middleware-error

其他格式: JSON · Markdown 中文 · English
80%修复率
88%置信度
0证据数
2024-05-20首次发现

版本兼容性

版本状态引入弃用备注
3.x active

根因分析

FastAPI中CORSMiddleware未正确添加到应用,导致被当作可调用对象处理。

English

FastAPI中CORSMiddleware未正确添加到应用,导致被当作可调用对象处理。

generic

解决方案

  1. 95% 成功率 使用add_middleware正确添加CORS中间件
    from fastapi.middleware.cors import CORSMiddleware; app.add_middleware(CORSMiddleware, allow_origins=['*'], allow_methods=['*'], allow_headers=['*'])
  2. 90% 成功率 使用Starlette的CORSMiddleware并手动添加
    from starlette.middleware.cors import CORSMiddleware; app.add_middleware(CORSMiddleware, allow_origins=['*'])

无效尝试

常见但无效的做法:

  1. 直接导入CORSMiddleware并作为装饰器使用 90% 失败

    CORSMiddleware是类,需要实例化。

  2. 在路由中使用CORSMiddleware作为依赖项 80% 失败

    依赖项需要可调用对象。