在django中使用post方法时,需要增加csrftoken的例子

作者:梓沂 时间:2023-08-12 06:44:34 

从百度查到在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

标签:django,post方法,csrftoken
0
投稿

猜你喜欢

  • pandas读取CSV文件时查看修改各列的数据类型格式

    2023-09-26 16:44:58
  • 如何从零开始利用js手写一个Promise库详解

    2024-04-19 10:46:32
  • 搭建一个开源项目两种方式安装git的详细教程

    2022-10-24 13:04:55
  • jquery+ajax+C#实现无刷新操作数据库数据的简单实例

    2024-01-15 03:26:34
  • Python函数式编程指南(四):生成器详解

    2023-08-23 05:50:02
  • vue基于websocket实现智能聊天及吸附动画效果

    2024-04-30 08:45:20
  • innodb_flush_method取值方法(实例讲解)

    2024-01-13 10:12:44
  • MySQL/MariaDB/Percona数据库升级脚本

    2024-01-21 10:01:09
  • Python+Selenium定位不到元素常见原因及解决办法(报:NoSuchElementException)

    2022-06-05 22:03:00
  • 浅探express路由和中间件的实现

    2024-05-11 10:17:08
  • Oracle中查询本月星期5的所有日期列表的语句

    2012-07-11 16:13:21
  • python中for语句简单遍历数据的方法

    2023-04-18 11:26:45
  • DW自带的行为制作弹出菜单

    2008-05-16 11:38:00
  • python Django框架快速入门教程(后台管理)

    2022-04-17 11:43:12
  • MobaXterm入门使用教程

    2023-11-23 12:26:53
  • Python列表删除的三种方法代码分享

    2022-10-26 19:13:35
  • mysql unix准换时间格式查找指定日期数据代码

    2024-01-16 00:35:24
  • Python经典案例之图像漫水填充分割详解

    2021-08-25 11:41:14
  • python requests.get带header

    2022-07-28 20:50:40
  • TP3.2批量上传文件或图片 同名冲突问题的解决方法

    2024-05-03 15:29:55
  • asp之家 网络编程 m.aspxhome.com