介绍
这篇文章主要介绍了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怎么实现数据交互