如何在Django中正确执行AJAX请求

问题描述 投票:0回答:1

我已经在模板中使用csrf标签制作了表格:

 <form id="appl_detail13" action="/13/devices/" method="post">
    <input type="hidden" name="csrfmiddlewaretoken" value="gTOpBTi6rljV5dKsGE0kuzD1IkghAlzW7GdiBZw6pMMaMUxJSlVev5YqPef6jhjb">
   <input name="appl_checkbox" id="5" type="checkbox" class="form-check-input applcheck" value="13"> 
</form>

我的视图接受请求并应发送JSON。

def ApplicationDetail(request, application_id):
     if request.method == 'POST':
        device = Device.objects.all().filter(application_id=application_id)
        data = serializers.serialize('json', device)

        return HttpResponse(data, content_type='application/json')
     else:
        return HttpResponse('no posted')

在复选框上单击,我执行ajax请求,但是我不发送csrf令牌:

$(".applcheck").click(e=>{
    $.post(requestUrl, data=> {
        console.log(data)
    })
})

所以我得到以下错误:

enter image description here

P.S。我知道有很多关于此的教程,但是其中许多已经过时,并且链接断开。

jquery django
1个回答
0
投票
如果您需要以POST的形式提交表单,则必须在表单中添加csrf令牌-
© www.soinside.com 2019 - 2024. All rights reserved.