关于python:django中遇到错误Forbidden-CSRF-cookie-not-set

39次阅读

共计 687 个字符,预计需要花费 2 分钟才能阅读完成。

CSRF cookie not set    

提醒就是说

未设置 CSRF cookie

CSRF 是啥?

示意 django 全局发送 post 申请均须要字符串验证

性能: 避免跨站申请伪造的性能

工作原理 :客户端拜访服务器端,在服务器端失常返回给客户端数据的时候,而外返回给客户端一段字符串,等到客户端下次访问服务器
端时,服务器端会到客户端查找先前返回的字符串,如果找到则持续,找不到就回绝。

拜访流程:客户端 -》URL 路由零碎 –》CSRF -》视图函数

我这里要写的是一个外部应用的 api 接口,也不大会有 跨站申请伪造

所以这里提供两个不是很举荐,然而非常简单的形式解决这个问题

既然不须要 CSRF 这里咱们就把 CSRF 检测关掉即可

解决办法 1:

  1. 在你创立的我的项目中,找到 settings.py 文件
  2. 文件 settings.py 找到 MIDDLEWARE参数
  3. 正文掉 'django.middleware.csrf.CsrfViewMiddleware', 即可

就像这样

解决办法 2:

第二种办法和第一种差不多

下面是的正文掉django.middleware.csrf.CsrfViewMiddleware,这是一个全局的设置

其实咱们也能够对单个 api 进行特地设置

这里 咱们应用 @csrf_exempt 来进行解决

@csrf_exempt 是用来勾销以后函数防跨站申请伪造性能

  1. views.py 文件,这是咱们解决 api 规定的
  2. 导入from django.views.decorators.csrf import csrf_exempt
  3. 咱们在对应的函数上加上@csrf_exempt

就像这样,是不是很简略

关注我获取更多内容
注:转载还请注明出处,谢谢 ^_^

正文完
 0