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 相关文章推荐
Python自动化构建工具scons使用入门笔记
Mar 10 Python
Python3.x版本中新的字符串格式化方法
Apr 24 Python
Python MD5加密实例详解
Aug 02 Python
Python实现网站表单提交和模板
Jan 15 Python
pandas去重复行并分类汇总的实现方法
Jan 29 Python
Python进阶之@property动态属性的实现
Apr 01 Python
Django 开发环境与生产环境的区分详解
Jul 26 Python
python用requests实现http请求代码实例
Oct 31 Python
Python实现实时数据采集新型冠状病毒数据实例
Feb 04 Python
PyInstaller的安装和使用的详细步骤
Jun 02 Python
python开发实时可视化仪表盘的示例
May 07 Python
pytorch 实现在测试的时候启用dropout
May 27 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
WordPress中创建用户角色的相关PHP函数使用详解
2015/12/25 PHP
js url传值中文乱码之解决之道
2009/11/20 Javascript
jQuery学习笔记(2)--用jquery实现各种模态提示框代码及项目构架
2013/04/08 Javascript
jquery submit ie6下失效的原因分析及解决方法
2013/11/15 Javascript
JQUERY 设置SELECT选中项代码
2014/02/07 Javascript
jQuery中:first选择器用法实例
2014/12/30 Javascript
JS中常用的输出方式(五种)
2016/06/12 Javascript
babel基本使用详解
2017/02/17 Javascript
vue组件间通信解析
2017/03/01 Javascript
关于react中组件通信的几种方式详解
2017/12/10 Javascript
JS+CSS实现滚动数字时钟效果
2017/12/25 Javascript
vue-quill-editor 自定义工具栏和自定义图片上传路径操作
2020/08/03 Javascript
vue 子组件和父组件传值的示例
2020/09/11 Javascript
[20:30]职业巡回赛回顾
2018/08/09 DOTA
[40:03]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
好的Python培训机构应该具备哪些条件
2018/05/23 Python
利用Python如何批量修改数据库执行Sql文件
2018/07/29 Python
Python3.6使用tesseract-ocr的正确方法
2018/10/17 Python
使用Django简单编写一个XSS平台的方法步骤
2019/03/25 Python
Python实现操纵控制windows注册表的方法分析
2019/05/24 Python
对python 中class与变量的使用方法详解
2019/06/26 Python
Gauss-Seidel迭代算法的Python实现详解
2019/06/29 Python
python虚拟环境的安装和配置(virtualenv,virtualenvwrapper)
2019/08/09 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
2020/01/18 Python
Python matplotlib画曲线例题解析
2020/02/07 Python
Python终端输出彩色字符方法详解
2020/02/11 Python
使用Tkinter制作信息提示框
2020/02/18 Python
tensorflow转换ckpt为savermodel模型的实现
2020/05/25 Python
Python面向对象实现方法总结
2020/08/12 Python
用HTML5实现鼠标滚轮事件放大缩小图片的功能
2015/06/25 HTML / CSS
h5网页水印SDK的实现代码示例
2019/02/19 HTML / CSS
Herschel美国官网:背包、手提袋及配件
2020/03/10 全球购物
高级销售员求职信
2013/10/25 职场文书
工程安全生产协议书
2014/11/21 职场文书
2016关于读书活动的心得体会
2016/01/14 职场文书
postgresql中如何执行sql文件
2023/05/08 PostgreSQL