[Django]post请求Forbidden (CSRF cookie not set.):

WARNING log 228 Forbidden (CSRF cookie not set.): /user/login/
WARNING basehttp 154 "POST /user/login/ HTTP/1.1" 403 2840

post提交需携带token问题三种解决方法

第一种:

在html文件form表单中添加{% csrf_token %}

<form action="" method="post">
  {% csrf_token %}
<form>

第二种:

view中使用method_decorator装饰器

from django.utils.decorators import method_decorator
from django.views.decorators.csrf import ensure_csrf_cookie


class LoginView(View):
  @method_decorator(ensure_csrf_cookie)
  def get(self, request)
      pass
  def post(self, request)
      pass

第三种:

自定义一个中间件

from django.utils.deprecation import MiddlewareMixin
from django.middleware.csrf import get_token


class CsrfTokenMiddleware(MiddlewareMixin):
    def process_request(self, request):
        get_token(request)
# settings.py文件中间件添加一行
'utils.csrfTokenMiddleware.CsrfTokenMiddleware'
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容