当前位置: 首页 > news >正文

ajax中发送csrf的方法,(django环境)

获取csrf随机字符串的方法:

  1. 通过其name=“csrfmiddlewaretoken”,来获取如:
    document.getElementsByName("csrfmiddlewaretoken")[0] 
    2 $('input[name="csrfmiddlewaretoken"]') 或$('[name="csrfmiddlewaretoken"]') 
    3  或者获得cookie中的csrf字符串 :

    document.cookie.split('=')[1]
    "cL0Jg0YRoof8VUDvUDDONyMoAxEANALqlYY0lp3w9nIG4JVd9yioSA9r0rSbHH0F"

    或引入jQuery,后:

    $.cookie('csrftoken')
    "cL0Jg0YRoof8VUDvUDDONyMoAxEANALqlYY0lp3w9nIG4JVd9yioSA9r0rSbHH0F"

如何发送到后台

  首先,cookie中取到的字符串和获取标签值得到的字符串是不同的。

  然后发送标签字符串:

 

$('#submit').on('click',function () {
var stingCsrf=$('[name="csrfmiddlewaretoken"]').val();
var stingText=$('[name="test"]').val();

$.ajax({
url:'/csrftext/',
type:'POST',

data:{'user':stingText,'csrfmiddlewaretoken':stingCsrf},
success:function (arg) {
console.log(arg);
}

});
})

  发送cookie中csrf字符串:

$('#submit').on('click',function () {
        var stingCsrf=$.cookie('csrftoken');      {#获取csrftoken字符串#}
        var stingText=$('[name="test"]').val();
        $.ajaxSetup({
            beforeSend: function(xhr, settings) {
                    xhr.setRequestHeader("X-CSRFToken", stingCsrf); {#设置post请求头部,加入csrf字符串#}
                }
        });
        $.ajax({
            url:'/csrftext/',
            type:'POST',
            data:{'user':stingText},
            success:function (arg) {
                console.log(arg);
            }

        });
    })

  

 

转载于:https://www.cnblogs.com/yuanji2018/p/9914625.html

相关文章:

  • CentOS 7.3 上安装docker
  • pycharm 取消空格,逗号 等符号的自动补全
  • Spring MVC 数据绑定 (四)
  • jupyter notebook中使用mpld3进行交互
  • C++Primer笔记-----继承
  • 最小支配集讲解
  • JS事件类型
  • ansible批量管理工具
  • json 序列化和反序列化的3个方法
  • Mac 启动 ssh 服务
  • Logstash 6.4.3 导入 csv 数据到 ElasticSearch 6.4.3
  • 指定spring中bean启动的顺序
  • utp
  • 把图片上的文字转换成word文字?
  • Ajax请求参数到一个URL包含下划线或者v(_、v)
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • Bytom交易说明(账户管理模式)
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • ERLANG 网工修炼笔记 ---- UDP
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • jquery ajax学习笔记
  • magento 货币换算
  • Mybatis初体验
  • MySQL QA
  • node-glob通配符
  • PHP面试之三:MySQL数据库
  • Python socket服务器端、客户端传送信息
  • spring boot下thymeleaf全局静态变量配置
  • vue-loader 源码解析系列之 selector
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 阿里云应用高可用服务公测发布
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 聊聊flink的TableFactory
  • 使用 Docker 部署 Spring Boot项目
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 源码安装memcached和php memcache扩展
  • ###STL(标准模板库)
  • #define与typedef区别
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (day 12)JavaScript学习笔记(数组3)
  • (day6) 319. 灯泡开关
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (poj1.3.2)1791(构造法模拟)
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (力扣题库)跳跃游戏II(c++)
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (区间dp) (经典例题) 石子合并
  • (全注解开发)学习Spring-MVC的第三天
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .NET和.COM和.CN域名区别