我使用的是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"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实现数据交互的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
标签:
django,vue,数据交互
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“django和vue实现数据交互的方法”评论...
更新动态
2025年11月05日
2025年11月05日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]