DRF框架中csrf异常

这篇博客探讨了在DRF(Django Rest Framework)中遇到的csrf异常问题。作者详细介绍了两种解决方法:一是通过配置文件进行设置,二是通过在请求数据中添加csrf_token。此外,还提到了一种奇怪的现象,即在某些django中间件配置下,仅方法一能够正常工作,而注释掉特定中间件后,使用方法二也会引发错误。
摘要由CSDN通过智能技术生成

一.报错信息

"detail": "CSRF Failed: CSRF cookie not set."

二.解决办法

方法一:

在配置文件中配置

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.TokenAuthentication',
    )
}

推荐Python大牛在线分享技术 扣qun:855408893

领域:web开发,爬虫,数据分析,数据挖掘,人工智能

零基础到项目实战,7天学习上手做项目

方法二.在提交信息中加上csrf_token:

页面form框中设置

{% csrf_token %}
这代码在页面中的显示内容
<input type="hidden" name="csrfmiddlewaretoken" value="l9gICFdVzkDkLExUoAPRpE0ElkGtG70Xmn6u536Keo3kaQPXEeC00g5kbnY3vJGd">

如果是ajax提交的话

在data中加上

data:{
    ..
    ..
   'csrfmiddlewaretoken': '{
  {csrf_token}}' //或者 'csrfmiddlewaretoken':'l9gICFdVzkDkLE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值