在django中使用post方法时,需要增加csrftoken的例子
作者:梓沂 发布时间:2023-08-12 06:44:34
标签:django,post方法,csrftoken
从百度查到在django中,使用post方法时,需要先生成随机码,以防止CSRF(Cross-site request forgery)跨站请求伪造,并稍加修改:
注:这是一个js文件,需要引入到html模板中:<script src="/static/javascript/post_need_csrftoken.js"></script>
这样做比使用{% csrf_token %}方便
$(function () {
$.ajaxSetup({
headers: { "X-CSRFToken": getCookie("csrftoken") }
});
});
// 为防止CSRF(Cross-site request forgery)跨站请求伪造,发post请求时需要在cookie中创建随机码
function getCookie(name)
{
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
/*
上面这句话相当于:
var arr;
var reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
*/
if(arr=document.cookie.match(reg))
return decodeURI(arr[2]); //ECMAScript v3 已从标准中删除了 unescape() 函数,并反对使用它,
// 因此应该用 decodeURI() 和 decodeURIComponent() 取而代之。
else
return null;
}
补充知识:Django解决前端/客户端POST失败提示csrf_tokenxxx的问题
解决:把settings.py里把MIDDLEWARE中的
django.middleware.csrf.CsrfViewMiddleware
删除掉就好了
如果你不想删除,并且你是web端的话,在form表单里加一句 {%csrf_token%} 就好了
<form>
{%csrf_token%}
<!-- 其它代码 -->
</form>
这个CRSF主要也是起一种保护验证的作用,看个人需要来保留吧
如果是安卓或者其它端,建议之间采取前者把那行代码删掉就行了
来源:https://blog.csdn.net/qq_27361945/article/details/79536114


猜你喜欢
- 一、前端工具vscode1.1、概述前端开发是创建Web页面或app等前端界面呈现给用户的过程,通过HTML,CSS及JavaScript以
- logging分为4个模块: loggers, handlers, filters, and formatters.●loggers: 提供
- 此命令作用,修改数据表ff_vod,在vod_url字段内容后加入999999999。update ff_vod set vod_url=C
- python常见的错误有1.NameError变量名错误2.IndentationError代码缩进错误3.AttributeError对象
- 本文讲述了Python在windows下打印彩色字体的方法。分享给大家供大家参考,具体如下:########################
- 一、前言今天有粉丝咨询了一个问题,他现在有两个列表,它们的元素都为字典,且字典都有一个key为id,现在想把这两个字典根据id合并为一个字典
- 本文实例讲述了js控制div弹出层实现方法。分享给大家供大家参考。具体分析如下:这是个功能很好,且容易调用和控制的弹出层。感兴趣的朋友可以调
- 一、什么是协程协程拥有自己的寄存器和栈。协程调度切换的时候,将寄存器上下文和栈都保存到其他地方,在切换回来的时候,恢复到先前保存的寄存器上下
- 目录1、系统环境,必要知识2、安装python3.6.53、安装Django4、安装uWSGI5、安装nginx6、MySQL安装配置7、编
- 逛到一个有意思的博客在里面看到一篇关于ValueError: invalid literal for int() with base 10错
- 方法一:读取文件时设置代码如下:Data = pd.read_excel(level_path, sheet_name=0, encodin
- python爬取数据保存为Json格式代码如下:#encoding:'utf-8'import urllib.request
- 本文实例讲述了python简单实现基数排序算法。分享给大家供大家参考。具体实现方法如下:from random import randint
- 本文实例讲述了Flask框架学习笔记之模板操作。分享给大家供大家参考,具体如下:flask的模板引擎是Jinja2。引入模板的好处是增加程序
- TensorFlow中tf.batch_matmul()用法如果有两个三阶张量,size分别为a.shape = [100, 3, 4]b.
- 本文实例为大家分享了python3实现简单飞机大战的具体代码,供大家参考,具体内容如下游戏分为两个部分:1.主程序 2.游戏工具主程序实现:
- 因为函数或类都是对象,它们也能被四处传递。它们又是可变对象,可以被更改。在函数或类对象创建后但绑定到名字前更改之的行为为装饰(decorat
- 最近用golang写了一个处理文件的脚本,由于其中涉及到了文件读写,开始使用golang中的 io 包,后来发现golang 中提供了一个b
- 不同的开发工具,都能俘获各自的一批忠实的用户和支持者。VS Code、Eclipse、IDEA、atom....到底哪一款开发工具更好?一直
- 本文实例讲述了Python访问MySQL封装的常用类。分享给大家供大家参考。具体如下:python访问mysql比较简单,下面整理的就是一个