python config_error ai_generated true

类型错误:CORSMiddleware.__init__() 得到了一个意外的关键字参数 'allow_origins'

TypeError: CORSMiddleware.__init__() got an unexpected keyword argument 'allow_origins'

ID: python/starlette-cors-middleware-error

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

版本兼容性

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

根因分析

Starlette中的CORSMiddleware使用'allow_origins',但旧版本使用'origins'。

English

The CORSMiddleware in Starlette uses 'allow_origins' but older versions use 'origins'.

generic

解决方案

  1. 90% 成功率 Check the Starlette version and use the correct parameter name.
    from starlette.middleware.cors import CORSMiddleware
    app.add_middleware(CORSMiddleware, allow_origins=['*'])  # For newer versions
  2. 85% 成功率 Use 'origins' parameter for older Starlette versions.
    app.add_middleware(CORSMiddleware, origins=['*'])

无效尝试

常见但无效的做法:

  1. Using both 'origins' and 'allow_origins' together. 70% 失败

    Only one parameter is accepted; using both causes error.

  2. Upgrading starlette but not updating the code. 60% 失败

    Newer versions may have changed the parameter name.