django和vue实现数据交互的方法


Posted in Python onAugust 21, 2019

我使用的是jQuery的ajax与django进行数据交互,遇到的问题是django的csrf

传输数据的方法如下:

$(function() {
  $.ajax({
   url: 'account/register',
   type: 'post',
   dataType:'json',
   data: $('#form1').serialize(),
   success: function (result) {
   console.log(result);
   if (result) {
    alert("result");
   }
   },
   error: function () {
   alert("error");
   },
  })
  })
 })

django对应的代码

def register(request):
 if request.method=="POST":
  if request.POST.get('name'):
   return render(request,'success.html')
  else:
   return HttpResponse("账号不能为空“)

当提交表单的时候,会出现

如果前端可以有django渲染,这个问题很好解决,只需要在要提交的表单中加入{% csrf_token %},但是在这中情况下显然是行不通的,通过在网上的搜索,我找到了这样的解决方案,完整代码如下:

$(function() {
  $('#sub').click(function () {
  $.ajaxSetup({
   beforeSend: function(xhr, settings) {
   function getCookie(name) {
    var cookieValue = null;
    if (document.cookie && document.cookie != '') {
    var cookies = document.cookie.split(';');
    for (var i = 0; i < cookies.length; i++) {
     var cookie = jQuery.trim(cookies[i]);
     // Does this cookie string begin with the name we want?
     if (cookie.substring(0, name.length + 1) == (name + '=')) {
     cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
     break;
     }
    }
    }
    return cookieValue;
   }
   if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {
    // Only send the token to relative URLs i.e. locally.
    xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
   }
   }
  });
  $.ajax({
   url: 'account/register',
   type: 'post',
   dataType:'json',
   data: $('#form1').serialize(),
   success: function (result) {
   console.log(result);
   if (result) {
    alert("result");
   }
   },
   error: function () {
   alert("success");
   },
  })
  })
 })

这样就可以成功提交表单了

方法来源 https://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request

以上这篇django和vue实现数据交互的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
简单的Python2.7编程初学经验总结
Apr 01 Python
Python 中 list 的各项操作技巧
Apr 13 Python
浅谈django model postgres的json字段编码问题
Jan 05 Python
Sublime开发python程序的示例代码
Jan 24 Python
Python实现FTP文件传输的实例
Jul 07 Python
通过python实现随机交换礼物程序详解
Jul 10 Python
python3.6生成器yield用法实例分析
Aug 23 Python
python 三元运算符使用解析
Sep 16 Python
Selenium使用Chrome模拟手机浏览器方法解析
Apr 10 Python
Python ArgumentParse的subparser用法说明
Apr 20 Python
Python xmltodict模块安装及代码实例
Oct 05 Python
Python绘制数码晶体管日期
Feb 19 Python
python防止随意修改类属性的实现方法
Aug 21 #Python
python进阶之自定义可迭代的类
Aug 20 #Python
关于阿里云oss获取sts凭证 app直传 python的实例
Aug 20 #Python
django中使用POST方法获取POST数据
Aug 20 #Python
python实现猜拳小游戏
Apr 05 #Python
django 自定义filter 判断if var in list的例子
Aug 20 #Python
python并发编程多进程 模拟抢票实现过程
Aug 20 #Python
You might like
Protoss兵种介绍
2020/03/14 星际争霸
第六节 访问属性和方法 [6]
2006/10/09 PHP
apache mysql php 源码编译使用方法
2012/05/03 PHP
php替换字符串中间字符为省略号的方法
2015/05/04 PHP
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
2015/05/21 PHP
Yii中的cookie的发送和读取
2016/07/27 PHP
详解CSS样式中的 !important * _ 符号
2021/03/09 HTML / CSS
Z-Blog中用到的js代码
2007/03/15 Javascript
如何创建一个JavaScript弹出DIV窗口层的效果
2013/09/25 Javascript
点击显示指定元素隐藏其他同辈元素的方法
2014/02/19 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
2016/05/21 Javascript
Javascript6中字符串的四个新用法分享
2016/09/11 Javascript
微信小程序中单位rpx和rem的使用
2016/12/06 Javascript
node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
2017/01/20 Javascript
NodeJS链接MySql数据库的操作方法
2017/06/27 NodeJs
老生常谈JS中的继承及实现代码
2018/07/06 Javascript
js实现随机数小游戏
2019/06/28 Javascript
layui复选框限制选择个数的方法
2019/09/18 Javascript
微信小程序实现多选框功能的实例代码
2020/06/24 Javascript
[04:13]2014DOTA2国际邀请赛 专访DC目前形势不容乐观
2014/07/12 DOTA
python的urllib模块显示下载进度示例
2014/01/17 Python
python 移除字符串尾部的数字方法
2018/07/17 Python
对python 读取线的shp文件实例详解
2018/12/22 Python
详解python算法之冒泡排序
2019/03/05 Python
python装饰器常见使用方法分析
2019/06/26 Python
安装python及pycharm的教程图解
2019/10/10 Python
详解Pycharm出现out of memory的终极解决方法
2020/03/03 Python
解决python3输入的坑——input()
2020/12/05 Python
年度考核自我鉴定
2014/02/02 职场文书
房屋授权无偿使用证明
2014/11/29 职场文书
先进基层党组织材料
2014/12/25 职场文书
2015年安全生产工作总结范文
2015/04/02 职场文书
实习感想范文
2015/08/10 职场文书
2016形势与政策学习心得体会
2016/01/12 职场文书
十大最强奥特曼武器:怪兽战斗仪在榜,第五奥特之父只使用过一次
2022/03/18 日漫
字节飞书面试promise.all实现示例
2022/06/16 Javascript