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"]或使用其他地址(您也可以嘗試使用“*”,但僅用于調試)。
另請嘗試在網絡瀏覽器中清除緩存的情況下運行測試。
如果這沒有幫助,請提供有關您的項目設置的更多詳細信息。
添加回答
舉報