Django应用程序在本地运行,但我在Heroku上获得CSRF验证失败 [英] Django app runs locally but I get CSRF verification failed on Heroku
本文介绍了Django应用程序在本地运行,但我在Heroku上获得CSRF验证失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的应用程序在heroku local
上运行良好,但在部署到Heroku后,每次我尝试以管理员身份登录/注册/登录时,它都会返回如下所示的错误。
我已尝试将@csrf_exempt
放在profile
视图上,但没有解决问题。
我能做些什么?
推荐答案
错误消息非常简单(请原谅打字错误,因为我无法从图像中复制):
Origin checking failed - https://pacific-coast-78888.herokuapp.com does not match any trusted origins
您正在使用的域不是CSRF的可信来源。
然后有一个指向文档的链接,我怀疑该链接指向the Django CSRF documentation,但the documentation for the CSRF_TRUSTED_ORIGINS
setting可能更有用:
在您的不安全请求的可信来源列表(例如
POST
)。对于包含
Origin
标头的请求,Django的CSRF保护要求标头与Host
标头中的来源匹配。
settings.py
中查找CSRF_TRUSTED_ORIGINS
并将https://pacific-coast-78888.herokuapp.com
添加到列表中。如果该设置不存在,只需添加它:
CSRF_TRUSTED_ORIGINS = ["https://pacific-coast-78888.herokuapp.com"]
这篇关于Django应用程序在本地运行,但我在Heroku上获得CSRF验证失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文