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实现批量重命名文件的代码
May 25 Python
Python实现复杂对象转JSON的方法示例
Jun 22 Python
Python实现可自定义大小的截屏功能
Jan 20 Python
python微信公众号开发简单流程
Mar 23 Python
浅谈tensorflow1.0 池化层(pooling)和全连接层(dense)
Apr 27 Python
对python Tkinter Text的用法详解
Oct 11 Python
python读取各种文件数据方法解析
Dec 29 Python
python程序变成软件的实操方法
Jun 24 Python
Python解释器以及PyCharm的安装教程图文详解
Feb 26 Python
python如何实现读取并显示图片(不需要图形界面)
Jul 08 Python
Python使用paramiko连接远程服务器执行Shell命令的实现
Mar 04 Python
python - asyncio异步编程
Apr 06 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
php关联数组快速排序的方法
2015/04/17 PHP
Prototype Object对象 学习
2009/07/12 Javascript
javascript动态加载实现方法一
2012/08/22 Javascript
javascript通过获取html标签属性class实现多选项卡的方法
2015/07/27 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
2016/06/12 Javascript
JS类的定义与使用方法深入探索
2016/11/26 Javascript
js放大镜放大购物图片效果
2017/01/18 Javascript
基于jquery实现多级菜单效果
2017/07/25 jQuery
React + webpack 环境配置的方法步骤
2017/09/07 Javascript
浅谈angular2子组件的事件传递(任意组件事件传递)
2018/09/30 Javascript
Angular 实现输入框中显示文章标签的实例代码
2018/11/07 Javascript
微信小程序云开发之云函数详解
2019/05/16 Javascript
深入学习js函数的隐式参数 arguments 和 this
2019/06/24 Javascript
图解NodeJS实现登录注册功能
2019/09/16 NodeJs
VUE table表格动态添加一列数据,新增的这些数据不可以编辑(v-model绑定的数据不能实时更新)
2020/04/03 Javascript
基于redis的小程序登录实现方法流程分析
2020/05/25 Javascript
Python实现的字典值比较功能示例
2018/01/08 Python
pyqt5实现俄罗斯方块游戏
2019/01/11 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
2019/05/27 Python
Python实现直方图均衡基本原理解析
2019/08/08 Python
pytorch 归一化与反归一化实例
2019/12/31 Python
python 爬取疫情数据的源码
2020/02/09 Python
keras中的loss、optimizer、metrics用法
2020/06/15 Python
html5实现多图片预览上传及点击可拖拽控件
2018/03/15 HTML / CSS
粉红色的鲸鱼:Vineyard Vines
2018/02/17 全球购物
英国女士和男士时尚服装网上购物:Top Labels Online
2018/03/25 全球购物
怎样拟定创业计划书
2014/05/01 职场文书
大学生社会实践方案
2014/05/11 职场文书
通信工程求职信
2014/07/16 职场文书
会计个人实习计划书
2014/08/15 职场文书
2014学习优秀共产党员先进事迹思想汇报
2014/09/14 职场文书
大学副班长竞选稿
2015/11/21 职场文书
普希金的诗歌赏析(3首)
2019/08/20 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python
船舶调度指挥系统——助力智慧海事
2022/02/18 无线电
vue postcss-px2rem 自适应布局
2022/05/15 Vue.js