博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
"CSRF token missing or incorrect."的解决方法.
阅读量:4946 次
发布时间:2019-06-11

本文共 2044 字,大约阅读时间需要 6 分钟。

现象:

Forbidden (403)

CSRF verification failed. Request aborted.
Help
Reason given for failure:
CSRF token missing or incorrect.
In general, this can occur when there is a genuine Cross Site Request Forgery, or when Django's CSRF mechanism has not been used correctly. For POST forms, you need to ensure:
Your browser is accepting cookies.
The view function uses RequestContext for the template, instead of Context.
In the template, there is a {% csrf_token %} template tag inside each POST form that targets an internal URL.
If you are not using CsrfViewMiddleware, then you must use csrf_protect on any views that use the csrf_token template tag, as well as those that accept the POST data.
You're seeing the help section of this page because you have DEBUG = True in your Django settings file. Change that to False, and only the initial error message will be displayed.
You can customize this page using the CSRF_FAILURE_VIEW setting.

解决步骤:

1〉django工程settings.py

MIDDLEWARE_CLASSES = (    'django.middleware.common.CommonMiddleware',    'django.contrib.sessions.middleware.SessionMiddleware',    'django.middleware.csrf.CsrfViewMiddleware',#确认存在    'django.contrib.auth.middleware.AuthenticationMiddleware',    'django.contrib.messages.middleware.MessageMiddleware',    # Uncomment the next line for simple clickjacking protection:    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',)

2〉html中的form添加模板标签{% csrf_token %}

{% csrf_token %}

3〉django工程views.py

from django.shortcuts import render_to_responsefrom django.template import RequestContextdef some_view(request):    # ...    return render_to_response('my_template.html',                              my_data_dictionary,                              context_instance=RequestContext(request))

有疑问请戳

P.S如果要屏蔽CSRF

方法1:注释掉django工程settings.py中

#'django.middleware.csrf.CsrfViewMiddleware'

方法2:django工程views.py添加屏蔽装饰器

from django.views.decorators.csrf import csrf_exempt @csrf_exemptdef some_view(request):    #...

 

转载于:https://www.cnblogs.com/zhujiabin/p/8260288.html

你可能感兴趣的文章
找水王
查看>>
Android应用开发相关下载资源(致己)
查看>>
Oracle 优化效率
查看>>
安卓机-华为安装charles证书
查看>>
Windows 下手工搭建 LNMP 环境
查看>>
【ASP.NET】从服务器端注册客户端脚本
查看>>
C语言 memcpy二维数组的复制
查看>>
一个按键精灵后台发送消息的脚本
查看>>
最通熟易懂的Hadoop HDFS实践攻略
查看>>
学习的逻辑
查看>>
存包练习
查看>>
[Android实例] Scroll原理-附ScrollView源码分析 (转载)
查看>>
gcc编译参数-fPIC的一些问题
查看>>
centos7.4/rehat7.0系统安装
查看>>
多态继承
查看>>
1063 计算谱半径
查看>>
BZOJ 1529 - 并查集
查看>>
LVS介绍
查看>>
$.fn.extend() 问:我来这个世上到底是干嘛的?
查看>>
ELF文件和BIN文件
查看>>