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 相关文章推荐
Python3读取UTF-8文件及统计文件行数的方法
May 22 Python
Python字符编码与函数的基本使用方法
Sep 30 Python
java中两个byte数组实现合并的示例
May 09 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
Oct 18 Python
Python利用requests模块下载图片实例代码
Aug 12 Python
Python获取统计自己的qq群成员信息的方法
Nov 15 Python
Django自带的加密算法及加密模块详解
Dec 03 Python
python深copy和浅copy区别对比解析
Dec 26 Python
Django 实现 Websocket 广播、点对点发送消息的代码
Jun 03 Python
sklearn和keras的数据切分与交叉验证的实例详解
Jun 19 Python
selenium+超级鹰实现模拟登录12306
Jan 24 Python
用gpu训练好的神经网络,用tensorflow-cpu跑出错的原因及解决方案
Mar 03 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设计模式 注册表模式
2012/02/05 PHP
PHP异常处理浅析
2015/05/12 PHP
必须收藏的23个php实用代码片段
2016/02/02 PHP
phpstudy的php版本自由修改的方法
2017/10/18 PHP
javascript学习笔记(三)显示当时时间的代码
2011/04/08 Javascript
JqGrid web打印实现代码
2011/05/31 Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
2013/05/26 Javascript
JS文本框追加多个下拉框的值的简单实例
2013/07/12 Javascript
js读取json的两种常用方法示例介绍
2014/10/19 Javascript
javascript实现继承的简单实例
2015/07/26 Javascript
JS实现双击内容变为可编辑状态
2017/03/03 Javascript
JavaScript利用fetch实现异步请求的方法实例
2017/07/26 Javascript
基于 Vue.js 之 iView UI 框架非工程化实践记录(推荐)
2017/11/21 Javascript
js实现每日签到功能
2018/11/29 Javascript
[06:45]DOTA2卡尔工作室 英雄介绍幻影长矛手篇
2013/07/12 DOTA
[52:00]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs Optic
2018/04/02 DOTA
[11:12]2018DOTA2国际邀请赛寻真——绿色长城OpTic
2018/08/10 DOTA
python设置检查点简单实现代码
2014/07/01 Python
由Python运算π的值深入Python中科学计算的实现
2015/04/17 Python
在Django框架中运行Python应用全攻略
2015/07/17 Python
整理Python 常用string函数(收藏)
2016/05/30 Python
python RabbitMQ 使用详细介绍(小结)
2018/11/08 Python
Python中整数的缓存机制讲解
2019/02/16 Python
基于python及pytorch中乘法的使用详解
2019/12/27 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
2020/03/17 Python
Python爬虫JSON及JSONPath运行原理详解
2020/06/04 Python
Python中zip函数如何使用
2020/06/04 Python
基于Keras 循环训练模型跑数据时内存泄漏的解决方式
2020/06/11 Python
50个强大璀璨的CSS3/JS技术运用实例
2010/02/27 HTML / CSS
Html5游戏开发之乒乓Ping Pong游戏示例(二)
2013/01/21 HTML / CSS
在html页面中取得session中的值的方法
2020/08/11 HTML / CSS
澳大利亚购买健身器材网站:Gym Direct
2019/12/19 全球购物
优秀学生党员先进事迹材料
2014/05/29 职场文书
岗位说明书怎么写
2014/07/30 职场文书
三峡人家导游词
2015/01/31 职场文书
Go语言基础切片的创建及初始化示例详解
2021/11/17 Golang