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实现删除Android工程中的冗余字符串
Jan 19 Python
Python实现快速排序算法及去重的快速排序的简单示例
Jun 26 Python
Scrapy爬虫实例讲解_校花网
Oct 23 Python
运动检测ViBe算法python实现代码
Jan 09 Python
python 生成图形验证码的方法示例
Nov 11 Python
python项目对接钉钉SDK的实现
Jul 15 Python
python 通过视频url获取视频的宽高方式
Dec 10 Python
python使用opencv resize图像不进行插值的操作
Jul 05 Python
Python csv文件记录流程代码解析
Jul 16 Python
Python全局变量与global关键字常见错误解决方案
Oct 05 Python
详解pycharm的python包opencv(cv2)无代码提示问题的解决
Jan 29 Python
如何使用pdb进行Python调试
Jun 30 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
微信公众号开发之微信公共平台消息回复类实例
2014/11/14 PHP
thinkphp缓存技术详解
2014/12/09 PHP
php实现汉字验证码和算式验证码的方法
2015/03/07 PHP
php实现的简单数据库操作Model类
2016/11/16 PHP
Javascript 汉字字节判断
2009/08/01 Javascript
基于Jquery的文字自动截取(提供源代码)
2011/08/09 Javascript
javaScript 计算两个日期的天数相差(示例代码)
2013/12/27 Javascript
js实现文字跟随鼠标移动而移动的方法
2015/02/28 Javascript
Javascript基础_嵌入图像的简单实现
2016/06/14 Javascript
jQuery实现公告新闻自动滚屏效果实例代码
2016/07/14 Javascript
jQuery实现的选择商品飞入文本框动画效果完整实例
2016/08/10 Javascript
JS声明对象时属性名加引号与不加引号的问题及解决方法
2018/02/16 Javascript
webpack打包nodejs项目的方法
2018/09/26 NodeJs
微信小程序 扭蛋抽奖机css3动画实现详解
2019/07/19 Javascript
vue-cli设置css不生效的解决方法
2020/02/07 Javascript
JavaScript代码实现微博批量取消关注功能
2021/02/05 Javascript
[14:21]VICI vs EG (BO3)
2018/06/07 DOTA
python实现红包裂变算法
2016/02/16 Python
Python中with及contextlib的用法详解
2017/06/08 Python
解决Linux系统中python matplotlib画图的中文显示问题
2017/06/15 Python
django celery redis使用具体实践
2019/04/08 Python
使用Django搭建一个基金模拟交易系统教程
2019/11/18 Python
如何利用pygame实现简单的五子棋游戏
2019/12/29 Python
AUC计算方法与Python实现代码
2020/02/28 Python
基于Django集成CAS实现流程详解
2020/11/28 Python
django使用多个数据库的方法实例
2021/03/04 Python
天猫超市:阿里巴巴打造的网上超市
2016/11/02 全球购物
小学生期末评语
2014/04/21 职场文书
领导干部作风建设自查报告
2014/10/23 职场文书
领导欢迎词范文
2015/01/26 职场文书
民事二审代理词
2015/05/25 职场文书
2016年春季开学典礼新闻稿
2015/11/25 职场文书
nginx如何将http访问的网站改成https访问
2021/03/31 Servers
一篇文章带你了解Python和Java的正则表达式对比
2021/09/15 Python
html5调用摄像头截图功能
2022/01/18 Javascript
Windows server 2012 R2 安装IIS服务器
2022/04/29 Servers