django中遇到错误:Forbidden CSRF cookie not set
  HJwyUgQ6jyHT 29天前 37 0

 

CSRF cookie not set

提示就是说

未设置CSRF cookie

表示django全局发送post请求均需要字符串验证

功能: 防止跨站请求伪造的功能

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

访问流程:客户端-》URL路由系统 - 》 CSRF -》视图函数

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

所以这里提供两个不是很推荐,但是非常简单的方式解决这个问题

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

解决方法1:

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

就像这样

django中遇到错误:Forbidden CSRF cookie not set

解决方法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

就像这样,是不是很简单

django中遇到错误:Forbidden CSRF cookie not set

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 29天前 0

暂无评论

推荐阅读
  HJwyUgQ6jyHT   15天前   35   0   0 nfs客户端
  HJwyUgQ6jyHT   2024年05月17日   31   0   0 redis客户端
HJwyUgQ6jyHT