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 04 Python
举例区分Python中的浅复制与深复制
Jul 02 Python
Python实现模拟时钟代码推荐
Nov 08 Python
python3+PyQt5重新实现自定义数据拖放处理
Apr 19 Python
基于python-opencv3的图像显示和保存操作
Jun 27 Python
python使用原始套接字发送二层包(链路层帧)的方法
Jul 22 Python
python Web flask 视图内容和模板实现代码
Aug 23 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
Jan 20 Python
python游戏开发的五个案例分享
Mar 09 Python
python求前n个阶乘的和实例
Apr 02 Python
用python读取xlsx文件
Dec 17 Python
python3读取文件指定行的三种方法
May 24 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
探讨如何把session存入数据库
2013/06/07 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
2014/08/05 PHP
php的扩展写法总结
2019/05/14 PHP
使用js获取QueryString的方法小结
2010/02/28 Javascript
Jquery ThickBox插件使用心得(不建议使用)
2010/09/08 Javascript
jcarousellite.js 基于Jquery的图片无缝滚动插件
2010/12/30 Javascript
基于jquery的bankInput银行卡账号格式化
2012/08/22 Javascript
上传图片js判断图片尺寸和格式兼容IE
2014/09/01 Javascript
jquery实现页面虚拟键盘特效
2015/08/08 Javascript
jQuery+css实现的换页标签栏效果
2016/01/27 Javascript
indexedDB bootstrap angularjs之 MVC DOMO (应用示例)
2016/06/20 Javascript
javascript实现简单的on事件绑定
2016/08/23 Javascript
浅谈JQ中mouseover和mouseenter的区别
2016/09/13 Javascript
详解vue组件通信的三种方式
2017/06/30 Javascript
vue+webpack中配置ESLint
2018/11/07 Javascript
如何阻止小程序遮罩层下方图层滚动
2019/09/05 Javascript
[00:34]DOTA2上海特级锦标赛 VG战队宣传片
2016/03/04 DOTA
Python2.7.10以上pip更新及其他包的安装教程
2018/06/12 Python
python 用opencv调用训练好的模型进行识别的方法
2018/12/07 Python
python实现WebSocket服务端过程解析
2019/10/18 Python
Python大数据之使用lxml库解析html网页文件示例
2019/11/16 Python
python pymysql链接数据库查询结果转为Dataframe实例
2020/06/05 Python
新手学python应该下哪个版本
2020/06/11 Python
Python实现弹球小游戏
2020/08/01 Python
在canvas上实现元素图片镜像翻转动画效果的方法
2018/03/20 HTML / CSS
Linux如何命名文件--使用文件名时应注意
2012/01/22 面试题
如何用JQuery进行表单验证
2013/05/29 面试题
年度考核表个人总结
2015/03/06 职场文书
公司年夜饭通知
2015/04/25 职场文书
创业计划书之情侣餐厅
2019/09/29 职场文书
如何理解Vue简单状态管理之store模式
2021/05/15 Vue.js
Java集成swagger文档组件
2021/06/28 Java/Android
小程序实现悬浮按钮的全过程记录
2021/10/16 HTML / CSS
Mysql中一千万条数据怎么快速查询
2021/12/06 MySQL
Django基础CBV装饰器和中间件
2022/03/22 Python
详解Mysql事务并发(脏读、不可重复读、幻读)
2022/04/29 MySQL