django和vue实现数据交互的方法
我使用的是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对应的代码
defregister(request): ifrequest.method=="POST": ifrequest.POST.get('name'): returnrender(request,'success.html') else: returnHttpResponse("账号不能为空“)
当提交表单的时候,会出现
如果前端可以有django渲染,这个问题很好解决,只需要在要提交的表单中加入{%csrf_token%},但是在这中情况下显然是行不通的,通过在网上的搜索,我找到了这样的解决方案,完整代码如下:
$(function(){ $('#sub').click(function(){ $.ajaxSetup({ beforeSend:function(xhr,settings){ functiongetCookie(name){ varcookieValue=null; if(document.cookie&&document.cookie!=''){ varcookies=document.cookie.split(';'); for(vari=0;i这样就可以成功提交表单了
方法来源https://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request
以上这篇django和vue实现数据交互的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。