您好,登錄后才能下訂單哦!
這篇文章主要介紹了django和vue怎么實(shí)現(xiàn)數(shù)據(jù)交互,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
我使用的是jQuery的ajax與django進(jìn)行數(shù)據(jù)交互,遇到的問(wèn)題是django的csrf
傳輸數(shù)據(jù)的方法如下:
$(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對(duì)應(yīng)的代碼
def register(request): if request.method=="POST": if request.POST.get('name'): return render(request,'success.html') else: return HttpResponse("賬號(hào)不能為空“)
當(dāng)提交表單的時(shí)候,會(huì)出現(xiàn)
如果前端可以有django渲染,這個(gè)問(wèn)題很好解決,只需要在要提交的表單中加入{% csrf_token %},但是在這中情況下顯然是行不通的,通過(guò)在網(wǎng)上的搜索,我找到了這樣的解決方案,完整代碼如下:
$(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"); }, }) }) })
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“django和vue怎么實(shí)現(xiàn)數(shù)據(jù)交互”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。