使用Ajax (put delete ) django原生CBV 出现csrf token解决办法
2024-09-28 14:24:53
原因
django原生CBV中对于 Ajax put 或 delete 请求进行封装时,会把请求数据放在 request.body里, 所以获取不到csrf token
方式一: 关闭csrf 中间件
简单粗暴
方式二: 针对CBV视图跨过csrf认证
先引入
from django.views.decorators.csrf import csrf_exempt
在视图中覆写父类的dispatch方法
class Center(View): @csrf_exempt
def dispatch(self, request, *args, **kwargs):
return super(Center, self).dispatch(request, *args, **kwargs)
直接在请求类型的方法上写入同样会出现csrf token,原因详情查看源码.
获取请求数据
from django.http import QueryDict class Foo(View): def put(self, request, *args, **wkargs)
request_data = QueryDict(request.body) #对请求数据进行封装
name = reuqest_data.get('name')
方式三: 使用中间件对请求数据做更细粒度的划分
没做. 写方式二的同时也想到了这个解决方法
最新文章
- 如何解决System.Web.HttpRequestValidationException的异常
- mysql中OPTIMIZE TABLE的作用
- Jmeter应用初步介绍
- SSH集成步骤
- mysql对比表结构对比同步,sqlyog架构同步工具
- N天前涨停过的票
- Protel封装库
- Java SE (1)之 JFrame 组件 FlowLayout 布局
- 转:.NET中使用Redis (一)
- jsp页面使用jstl标签格式化String类型日期
- Copy xml 文件
- Eclipse/MyEclipse 安裝後應該更改的設置
- Struts第八篇【资源国际化、对比JSP的资源国际化】
- 关于防止sql注入的几个知识点
- 453. Minimum Moves to Equal Array Elements
- 解决记录:win10 无法安装VS2017,visual studio installer下载进度始终为0
- oracle常用系统函数
- Uiautomator分类
- 根据dateFormatter创建NSDate类型数据
- Django知识点
热门文章
- Web Api 模型绑定 一
- 获取Object对象属性的方法,Reflect.ownKeys, Object.getOwnPropertyNames,Object.getOwnPropertySymbols,Object.keys,for in
- Semaphore的简介及应用场景
- 线上IIS应用程序池自动关闭
- [转]【会话技术】Cookie技术
- Leecode之双指针及二分查找
- USACO Poker Hands
- CAJViewer 去除右上角闪动的图标
- spring学习2
- Eye sketch - ES