我已经将 Django 从 1.7.5 升级到 1.11.15。我也在使用 Django Rest Framework 版本 3.3.2。
在此之后,所有 PUT/POST(也可能是 DELETE)请求都被 403 状态代码和消息拒绝:
{"detail":"CSRF 失败:CSRF cookie 未设置。"}
我在 settings.py 中使用的中间件类是:
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
#'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware'
)
我注意到如果我启用 'django.middleware.csrf.CsrfViewMiddleware' 中间件类,那么一切正常。但是,由于我不清楚为什么这个类目前被禁用,我想保持原样并寻找另一种解决方法。
在这种情况下会有什么选择?