我的應用程式運行良好,heroku local但在部署到 Heroku 后,每次我嘗試以管理員身份登錄/注冊/登錄時,它都會回傳如下所示的錯誤。
我試圖提出@csrf_exempt意見profile,但這并沒有解決問題。
我能做什么?

uj5u.com熱心網友回復:
錯誤訊息是不言自明的(請原諒拼寫錯誤,因為我無法從影像中復制):
Origin checking failed - https://pacific-coast-78888.herokuapp.com does not match any trusted origins
您使用的域不是 CSRF 的可信來源。
然后有一個指向檔案的鏈接,我懷疑該鏈接指向Django CSRF 檔案,盡管設定的檔案CSRF_TRUSTED_ORIGINS可能更有用:
不安全請求的可信來源串列(例如
POST)。對于包含
Origin標頭的請求,Django 的 CSRF 保護要求標頭與標頭中存在的源匹配Host。
查看您的settings.pyforCSRF_TRUSTED_ORIGINS并添加https://pacific-coast-78888.herokuapp.com到串列中。如果該設定尚不存在,只需添加它:
CSRF_TRUSTED_ORIGINS = ["https://pacific-coast-78888.herokuapp.com"]
uj5u.com熱心網友回復:
看來您在專案的 setting.py 檔案中沒有將您的 heroku 地址作為受信任的來源,為此,您可以使用 corsheaders
pip install django-cors-headers
然后在你的 settings.py 檔案中
INSTALLED_APPS = [
...
'corsheaders',
...
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
...
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'corsheaders.middleware.CorsMiddleware',
]
如果您尚未部署,則可以添加CORS_ORIGIN_ALLOW_ALL = True,但因為您知道使用源白名單部署應用程式的位置是一個更好的主意
CORS_ORIGIN_WHITELIST = (
'https://pacific-coast-78888.herokuapp.com',
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/410823.html
標籤:
