我正在使用开发服务器,登录/admin/
,这很有效。然后我可以点击管理项目,例如组:/admin/auth/group/
。然后我在JavaScript控制台中看到:
Uncaught SyntaxError: Unexpected token <
这来自:
?next=/admin/jsi18n/:1
在网络标签中,我看到/admin/jsi18n/
的请求状态代码为302,由于某种原因已被重定向,并显示请求Cookie(显示有效)和响应Cookie(现在空)。
我在这里做错了什么?
以下是我的settings.py
个Cookie变量:
CSRF_COOKIE_NAME = 'tokenname_csrftoken'
CSRF_COOKIE_SECURE = False
CSRF_HEADER_NAME = CSRF_COOKIE_NAME
SESSION_COOKIE_NAME = CSRF_COOKIE_NAME
SESSION_COOKIE_SECURE = False
答案 0 :(得分:1)
我最近也遇到了这个问题,但原因与接受的答案中所建议的原因不同。我花了2天的时间解决了这个问题,希望这对遇到类似问题的人有所帮助。
我以这种方式设置了SECRET_KEY
:
from django.core.management.utils import get_random_secret_key
SECRET_KEY = os.getenv('APP_SECRET_KEY', default=get_random_secret_key())
并且,由于未设置APP_SECRET_KEY
环境变量,并且由于我正在docker中重建应用程序,因此每次都会生成一个新的秘密。
解决方案::确保您的密钥不会更改,因为它会影响Django会话验证。
参考:
答案 1 :(得分:0)
找到它。
所有Cookie名称都必须是唯一的。理所当然。
将SESSION_COOKIE_NAME
更改为'tokenname_sessionid'
。
https://docs.djangoproject.com/en/1.11/ref/settings/#csrf-cookie-name