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
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'.
解决方案
-
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
-
85% 成功率 Use 'origins' parameter for older Starlette versions.
app.add_middleware(CORSMiddleware, origins=['*'])
无效尝试
常见但无效的做法:
-
Using both 'origins' and 'allow_origins' together.
70% 失败
Only one parameter is accepted; using both causes error.
-
Upgrading starlette but not updating the code.
60% 失败
Newer versions may have changed the parameter name.