django和vue怎么实现数据交互

  介绍

这篇文章主要介绍了django和vue怎么实现数据交互,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

我使用的是jQuery的ajax与django进行数据交互,遇到的问题是django的csrf

<强>传输数据的方法如下:

, $(()函数,{   . ajax({美元才能   ,,,url: & # 39;账户/注册# 39;   ,,,类型:& # 39;文章# 39;   ,,数据类型:& # 39;json # 39;   ,,,数据:美元(& # 39;# form1 # 39;) .serialize (),   ,,,成功:function (结果),{   ,,console.log(结果);   ,,if (结果),{   ,,,警报(“result");   ,,}   ,,},   ,,,错误:function  (), {   ,,警报(“error");   ,,},   })才能   })才能   之前,})

django对应的代码

def 注册(请求):   ,if  request.method==癙OST":   if 才能;request.POST.get(& # 39;名字# 39;):   ,,return 渲染(请求,& # 39;success.html& # 39;)   其他的才能:   ,,return  HttpResponse(“账号不能为空”)

当提交表单的时候,会出现

如果前端可以有django渲染,这个问题很好解决,只需要在要提交的表单中加入{% csrf_token %},但是在这中情况下显然是行不通的,通过在网上的搜索,我找到了这样的解决方案,完整代码如下:

, $(()函数,{   美元才能(& # 39;#子# 39;).click (function  (), {   美元才能.ajaxSetup ({   ,,,beforeSend:函数(xhr、,设置),{   ,,function  getCookie(名字),{   ,,,var  cookieValue =,空;   ,,,if  (document.cookie ,,, document.cookie  !=, & # 39; & # 39;), {   ,,,var  cookies =, document.cookie.split (& # 39;; & # 39;);   ,,,for  (var 小姐:=,0;,小姐:& lt;, cookies.length;,我+ +),{   ,,,,var  cookie =, jQuery.trim(饼干[我]);   ,,,,//,Does 却;能够cookie  string  begin  with 从而name 想要什么?我方表示歉意   ,,,,if  (cookie.substring (0,, name.length  +, 1),==,(时间+ name  & # 39;=& # 39;)), {   ,,,,cookieValue =, decodeURIComponent (cookie.substring (name.length  +, - 1));   ,,,,休息;   ,,,,}   ,,,}   ,,,}   ,,,return  cookieValue;   ,,}   ,,if  (! (http:/^。*/test (settings.url), | |,/^ https:。*/test (settings.url))), {   ,,,//,Only  send 从而token 用relative  URLs ,即只在本地。   ,,,xhr.setRequestHeader (“X-CSRFToken",, getCookie (& # 39; csrftoken& # 39;));   ,,}   ,,}   ,,});   . ajax({美元才能   ,,,url: & # 39;账户/注册# 39;   ,,,类型:& # 39;文章# 39;   ,,数据类型:& # 39;json # 39;   ,,,数据:美元(& # 39;# form1 # 39;) .serialize (),   ,,,成功:function (结果),{   ,,console.log(结果);   ,,if (结果),{   ,,,警报(“result");   ,,}   ,,},   ,,,错误:function  (), {   ,,警报(“success");   ,,},   })才能   })才能   之前,})

django和vue怎么实现数据交互