2 回答
TA贡献1775条经验 获得超11个赞
我在项目解决方案中也遇到了同样的问题,我得到的是
将 corsheaders.middleware.CorsMiddleware 放在顶部
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
..........
..........
]
ALLOWED_HOSTS = ['*']
在settings.py底部添加
CORS_ORIGIN_ALLOW_ALL = True
根据文档, CorsMiddleware 应该放置在尽可能高的位置,特别是在任何可以生成响应的中间件之前,例如 Django 的 CommonMiddleware 或 Whitenoise 的 WhiteNoiseMiddleware。如果不是之前,它将无法将 CORS 标头添加到这些响应中。
另外,如果您使用 CORS_REPLACE_HTTPS_REFERER,则应将其放置在 Django 的 CsrfViewMiddleware 之前。
TA贡献1804条经验 获得超2个赞
通常,对于此类错误,您需要settings.py更新django-cors-headers:
# update backend/server/server/settings.py
# ...
INSTALLED_APPS = [
#...
'corsheaders', # add it here
#...
]
# define which origins are allowed
CORS_ALLOWED_ORIGINS = [
"http://localhost:3000",
"http://127.0.0.1:3000"
]
# add to middleware
MIDDLEWARE = [
#...
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
#...
]
有时您还需要设置ALLOWED_HOSTS=["127.0.0.1"]或使用其他地址(您也可以尝试使用“*”,但仅用于调试)。
另请尝试在网络浏览器中清除缓存的情况下运行测试。
如果这没有帮助,请提供有关您的项目设置的更多详细信息。
添加回答
举报