Django Forbidden (CSRF cookie 未设置): / POST / HTTP/1.1" 403 2864 on Google Colab



所以我试着根据本教程在Google collab上运行我的Django web程序https://medium.com/@arsindoliya/running-djangoon-google-colab-ea9392cdee86

我做到了,网络可以运行!运行web

但是,如果我想制作POST,它总是像这个一样出错

禁止(未设置CSRF cookie。(:/[22/2022年2月22日02:13:47]";POST/HTTP/1.1";403 2864

我已经尝试了一些解决方案,比如在我的设置中设置CSRF_COOKIE_SECURE=True,但仍然不起作用,我也在表单中设置了@csrf_token,但仍然无效。

我也想试试的这个解决方案

from django.views.decorators.csrf import csrf_exempt

但我还是不知道该怎么用。

有人能解决这个问题吗?我还是Django的新手,我为我大学的期末项目做了准备,所以你们提出的任何解决方案都对我很有帮助。谢谢

解决此问题的两种方法。

  1. 在settings.py中注释出有关MIDDLEWARE的代码,如下所示:
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
  1. 使用@csrf_exempt来处理它,如下所示:
from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def rule_api(request):
pass

在Django中,如果你使用方法post,你应该添加它:

{% csrf_token %}

您可以参考,如果:https://docs.djangoproject.com/en/4.0/ref/csrf/

最新更新