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中使用enumerate函数遍历元素实例
Jun 16 Python
Python实现计算文件夹下.h和.cpp文件的总行数
Apr 23 Python
Python生成器定义与简单用法实例分析
Apr 30 Python
Python numpy中矩阵的基本用法汇总
Feb 12 Python
Python中Subprocess的不同函数解析
Dec 10 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
Jan 14 Python
Python3 集合set入门基础
Feb 10 Python
tensorflow 实现从checkpoint中获取graph信息
Feb 10 Python
python设置代理和添加镜像源的方法
Feb 14 Python
Python2.x与3​​.x版本有哪些区别
Jul 09 Python
详解Django中异步任务之django-celery
Nov 05 Python
Anaconda配置各版本Pytorch的实现
Aug 07 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新手上路(十四)
2006/10/09 PHP
ucenter通信原理分析
2015/01/09 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
一个js写的日历(代码部分网摘)
2009/09/20 Javascript
基于JQuery的简单实现折叠菜单代码
2010/09/15 Javascript
Jquery封装tab自动切换效果的具体实现
2013/07/13 Javascript
js整数字符串转换为金额类型数据(示例代码)
2013/12/26 Javascript
js鼠标点击图片实现随机变换图片的方法
2015/02/16 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
2016/03/28 Javascript
javascript常见数字进制转换实例分析
2016/04/21 Javascript
JS实现的添加弹出层并完成锁屏操作示例
2017/04/07 Javascript
Node.js v8.0.0正式发布!看看带来了哪些主要新特性
2017/06/02 Javascript
JS实现的简单分页功能示例
2018/08/23 Javascript
微信小程序日历效果
2018/12/29 Javascript
你可能从未使用过的11+个JavaScript特性(小结)
2020/01/08 Javascript
微信小程序学习总结(三)条件、模板、文件引用实例分析
2020/06/04 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
JavaScript语句错误throw、try及catch实例解析
2020/08/18 Javascript
Python删除windows垃圾文件的方法
2015/07/14 Python
pycharm远程调试openstack代码
2017/11/21 Python
Django rest framework实现分页的示例
2018/05/24 Python
Python简单I/O操作示例
2019/03/18 Python
由Python编写的MySQL管理工具代码实例
2019/04/09 Python
Python opencv实现人眼/人脸识别以及实时打码处理
2019/04/29 Python
Django框架封装外部函数示例
2019/05/28 Python
Python 函数绘图及函数图像微分与积分
2019/11/20 Python
python基于三阶贝塞尔曲线的数据平滑算法
2019/12/27 Python
PyTorch预训练Bert模型的示例
2020/11/17 Python
英国排名第一的在线宠物用品商店:Monster Pet Supplies
2018/05/20 全球购物
最新销售员个人自荐信
2013/09/21 职场文书
奥林匹克运动会口号
2014/06/19 职场文书
入党政审材料范文
2014/12/24 职场文书
2015年教导处教学工作总结
2015/07/22 职场文书
小学班主任研修日志
2015/11/13 职场文书
PostgreSQL将数据加载到buffer cache中操作方法
2021/04/16 PostgreSQL
使用vue-element-admin框架从后端动态获取菜单功能的实现
2021/04/29 Vue.js